|
JSP (foreach в foreach-e)
|
|||
---|---|---|---|
#18+
Здравствуйте всем. Заранее приношу извинения за возможные ляпы, Java занимаюсь только опционально. Проблема в следующем: Есть JSP-страница, в ней есть два foreach один в другом, первый отрабатывает нормально а второй (внутренний) только первых две итерации первого, а дальше "пропадает" с обработки. Например первый foreach имеет 5 строк, второй (внутри первого) может иметь несколько строк по каждой строке первого foreach-а, но в результате я получаю данные по всем 5-ти строкам первого foreach-а и строки второго, но только по первым двум строкам первого. автор<%@ include file="/inc/header_msword.jsp" %> <%@ page contentType="text/html;charset=windows-1251" %> <% ... String GR1_ID = new String(" "); String GR2_ID = new String(" "); String CLNAME = new String(" "); ... String ADDR_NAME = new String(" "); ... %> <rw:report id="report"> <rw:objects id="objects"> <?xml version="1.0" encoding="WINDOWS-1251" ?> <report name="RECEIPT" DTDVersion="9.0.2.0.10"> <xmlSettings xmlTag="MODULE1" xmlPrologType="text"> <![CDATA[<?xml version="1.0" encoding="&Encoding"?>]]> </xmlSettings> <data> <userParameter name="POL_ID" datatype="character" width="40" defaultWidth="0" defaultHeight="0"/> <dataSource name="Q_0"> <select canParse="no"> <![CDATA[select ...;]]> </select> <group name="group_0"> <dataItem name="rn0"/> </group> </dataSource> <dataSource name="Q_1"> <select canParse="no"> <![CDATA[select a.rn ,a.policy_id gr1_id ,REGEXP_REPLACE(REGEXP_REPLACE(XMLAGG(XMLELEMENT("tr",'<td class=xl39 align=center>'||a.plan_date||'</td><td class=xl39 align=center>'|| a.amount||'</td>')), '&\lt;','<'),'&\gt;','>') c_xml ,a.cl_name ...;]]> </select> <group name="group_1"> <dataItem name="rn"/> </group> </dataSource> <dataSource name="Q_2"> <select canParse="no"> <![CDATA[select rownum rn2, ph.policy_id gr2_id, ...;]]> </select> <group name="group_2"> <dataItem name="rn2"/> </group> </dataSource> </data> <reportPrivate versionFlags2="0" templateName="rwbeige"/> <reportWebSettings> <![CDATA[]]> </reportWebSettings> </report> </rw:objects> <rw:foreach id="f0" src="group_0"> <rw:getValue id="sign_post" src="sign_post"/> <rw:getValue id="sign_name" src="sign_name"/> <% SIGNPOST = sign_post; SIGNNAME = sign_name; %> </rw:foreach> <rw:foreach id="fi1" src="group_1"> <rw:getValue id="c_xml" src="c_xml"/> <rw:getValue id="gr1_id" src="gr1_id"/> <rw:getValue id="cl_name" src="cl_name"/> ... <% C_XML = c_xml; GR1_ID = gr1_id; CLNAME = cl_name; ... int GR1 = new Integer(gr1_id).intValue(); %> <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns=" http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=Content-Type content="text/html; charset=windows-1251"> ... </head> <body lang=RU style='tab-interval:35.4pt'> <div class=Section1> <table class=MsoTableGrid border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse;mso-yfti-tbllook:480;mso-padding-alt:0cm 5.4pt 0cm 5.4pt'> <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'> <td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=UK style='font-size:10.0pt;mso-ansi-language: UK'><o:p> </o:p></span></p> </td> <td width=331 valign=top style='width:248.15pt;padding:0cm 5.4pt 0cm 5.4pt'> <p class=MsoNormal><span lang=UK style='font-size: 10.0pt;mso-ansi-language:UK'><%=CLNAME%><o:p></o:p></span></p> <p class=MsoNormal><span lang=UK style='font-size:11.0pt;mso-ansi-language: UK'><o:p> </o:p></span></p> <p class=MsoNormal><span lang=UK style='font-size:10.0pt;mso-ansi-language: UK'><%=ADDR_NAME%><o:p></o:p></span></p> </td> </tr> </table> ... <rw:foreach id="f4" src="group_2"> <rw:getValue id="rown" src="rown"/> <rw:getValue id="rowcnt" src="rowcnt"/> <rw:getValue id="gr2_id" src="gr2_id"/> <% int ROWN = new Integer(rown).intValue(); int ROWCNT = new Integer(rowcnt).intValue(); int GR2 = new Integer(gr2_id).intValue(); %> <% if (GR1 == GR2) { %> <table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=741 ... </table> <% } %> </rw:foreach> </div> </rw:foreach> </body> </html> </rw:report> foreach с id="f4" отрабатывает только первых две итерации foreach id="fi1" и в данном примере условие if (GR1 == GR2) будет тру про всем строкам. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2012, 12:49 |
|
|
start [/forum/topic.php?fid=51&tid=1878553]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
122ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
2ms |
others: | 381ms |
total: | 572ms |
0 / 0 |