0

forEach can't work in zk jsp tag

asked 2011-03-03 21:34:40 +0800

jack3dot1415 gravatar image jack3dot1415
60 2
http://turbo00.7168.net/

I have modify the sample demo code from http://www.zkoss.org/zkdemo/grid/paging from zul to zkjsp tag like this:

<z:page>
	<z:panel id="mainP" framable="true" height="400px">
	    <z:panelchildren>
	        <z:grid id="grid" autopaging="true" mold="paging" vflex="true" pagingPosition="both">
	            <z:columns>
	                <z:column width="80px" label="Order #" align="left" />
	                <z:column label="Item Purchased" align="center" />
	                <z:column label="Purchased Time" align="center" />
	                <z:column width="80px" label="Paid" align="center" />
	            </z:columns>
	            <z:rows>
	                <z:zscript>
	                    import org.zkoss.zul.*;
	                    int[] orderArray = new int[26];
	                    for (int j = 0; j < 26; j++) {
	                        orderArray = 3456 + j;
	                    }
	                </z:zscript>
	                <z:row forEach="${orderArray}">
	                    <z:label value="${each}" />
	                    <z:listbox mold="select">
	                        <z:listitem label="Java" />
	                        <z:listitem label="Latte" />
	                        <z:listitem label="Lungo" />
	                        <z:listitem label="Macchiato" />
	                        <z:listitem label="Mocha" />
	                    </z:listbox>
	                    <z:timebox cols="12" format="a hh:mm:ss" onCreate="self.value = new Date()" mold="rounded" />
	                    <z:checkbox label="No" onCheck='self.label= self.isChecked()?"Yes" : "No" ' />
	                </z:row>
		                
	            </z:rows>
	        </z:grid>
	    </z:panelchildren>
    </z:panel>
</z:page>

and there will be a exception:

org.zkoss.zk.ui.UiException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: java.lang.NoSuchMethodException: org.zkoss.zul.Row: no method called forEach for 
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:530)
	at org.zkoss.lang.Classes.newInstance(Classes.java:76)
	at org.zkoss.lang.Exceptions.wrap(Exceptions.java:162)
	at org.zkoss.zk.ui.UiException$Aide.wrap(UiException.java:44)
	at org.zkoss.jsp.zul.impl.RootTag$MyRichlet.service(RootTag.java:313)
	at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage0(UiEngineImpl.java:417)
	at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage(UiEngineImpl.java:302)
	at org.zkoss.jsp.zul.impl.RootTag.doTag(RootTag.java:273)
	at org.apache.jsp.WEB_002dINF.jsp.bom.bomAdmin_jsp._jspx_meth_z_page_0(org.apache.jsp.WEB_002dINF.jsp.bom.bomAdmin_jsp:199)
	at org.apache.jsp.WEB_002dINF.jsp.bom.bomAdmin_jsp._jspService(org.apache.jsp.WEB_002dINF.jsp.bom.bomAdmin_jsp:139)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
......
,


is forEach can't work with zk jsp tag?

delete flag offensive retag edit

5 Replies

Sort by » oldest newest

answered 2011-03-03 22:49:29 +0800

jimmyshiau gravatar image jimmyshiau
4921 5
http://www.zkoss.org/ ZK Team

updated 2011-03-03 22:49:51 +0800

Hi jack,
Please using jstl with JSP

<c:forEach var="i" begin="1" end="3" step="1" varStatus="status">
    <z:row forEach="${orderArray}">
	     <z:label value="${each}" />
	     <z:listbox mold="select">
	             <z:listitem label="Java" />
	             <z:listitem label="Latte" />
	             <z:listitem label="Lungo" />
	             <z:listitem label="Macchiato" />
	             <z:listitem label="Mocha" />
	     </z:listbox>
	     <z:timebox cols="12" format="a hh:mm:ss" onCreate="self.value = new Date()" mold="rounded" />
	     <z:checkbox label="No" onCheck='self.label= self.isChecked()?"Yes" : "No" ' />
    </z:row> 
</c:forEach>

link publish delete flag offensive edit

answered 2011-03-04 00:20:40 +0800

jack3dot1415 gravatar image jack3dot1415
60 2
http://turbo00.7168.net/

updated 2011-03-04 00:21:25 +0800

thanks, but because of this problem: http://www.zkoss.org/forum/listComment/15427

                    <z:rows>
	                <z:zscript>
	                    import org.zkoss.zul.*;
	                    int[] orderArray = new int[26];
	                    for (int j = 0; j < 26; j++) {
	                        orderArray = 3456 + j;
	                    }
	                </z:zscript>
                       <c:forEach var="num" items="${orderArray}" varStatus="status">
	                <z:row>
	                    <z:label value="${num}" />
	                    <z:listbox mold="select">
	                        <z:listitem label="Java" />
	                        <z:listitem label="Latte" />
	                        <z:listitem label="Lungo" />
	                        <z:listitem label="Macchiato" />
	                        <z:listitem label="Mocha" />
	                    </z:listbox>
	                    <z:timebox cols="12" format="a hh:mm:ss" onCreate="self.value = new Date()" mold="rounded" />
	                    <z:checkbox label="No" onCheck='self.label= self.isChecked()?"Yes" : "No" ' />
	                </z:row>
                      </c:forEach>
	            </z:rows>

in jstl, how to access the zk variable orderArray ?

link publish delete flag offensive edit

answered 2011-03-04 02:27:39 +0800

jack3dot1415 gravatar image jack3dot1415
60 2
http://turbo00.7168.net/

use the zuljsp 1.5, and jstl forEach,the problem have resolved,

see http://www.zkoss.org/forum/listComment/15427

link publish delete flag offensive edit

answered 2011-11-03 15:09:49 +0800

hwneto gravatar image hwneto
3

updated 2011-11-03 15:10:29 +0800

Hi...

I´m using zk 5.0.9 and zk jsp 1.6

I´m still getting this error in forEach with zk jsp..

My problem is..

I need to re-render a component after a button click for example, and using jstl for each the component wasn´t updated...

I would like to do something like this...

<zk:zscript>
String[] str = new String[]{"Test", "Test2"};
</zk:zscript>
<zk:div model="@{null, load-after='add.onClick'}">
<zk:div forEach="${str}">
<script type="text/javascript">alert("test");</script>
</zk:div>
</zk:div>
<zk:button id="add"></zk:button>


But i get this error...
>>java.lang.NoSuchMethodException: org.zkoss.zul.Div: no method called forEach for

But str is not null....

Please help me....

link publish delete flag offensive edit

answered 2011-11-07 03:05:49 +0800

jimmyshiau gravatar image jimmyshiau
4921 5
http://www.zkoss.org/ ZK Team

Hi hwneto,
You can call invalidate

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ taglib uri="http://www.zkoss.org/jsp/zul" prefix="zk"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
</head>
<body style="padding: 0px; overflow: hidden; margin: 0px;">
	<%
	    request.setAttribute("str",new String[]{"Test", "Test2"});
	%>
	<zk:page>
		<zk:div id="myDiv">
			<c:forEach var="s" items="${str}">
				<zk:div>
					<script type="text/javascript">
						alert("${s}");
					</script>
				</zk:div>
			</c:forEach>
		</zk:div>
		<zk:button id="add" label="add" onClick="myDiv.invalidate()"></zk:button>
	</zk:page>
</body>
</html>

link publish delete flag offensive edit
Your reply
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow

RSS

Stats

Asked: 2011-03-03 21:34:40 +0800

Seen: 703 times

Last updated: Nov 07 '11

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More