struts对话框没有取jsp scriplet

时间:2015-06-10 12:24:49

标签: java jquery jsp struts2 ognl

我在jsp页面中使用struts dialog box。我希望每个id框中的dialog应该是动态的。为此我正在做这个代码 -

<%
    int counter = 0;
%>
<s:iterator var="RP" value="campaignList" status="currRow">
    <%
        counter++;
    %>
    <sj:dialog id="DivQuestionAnswer<%=counter%>" autoOpen="false"
        modal="true" width="750" cssStyle="font-size: 15px;"
        title="Question Results">
        <s:form name="frmUploadQuestion" id="frmUploadQuestion"
            action="uploadQuestion" method="post" theme="simple">
            <s:hidden value="" name="question.campaignId" id="campaignId" />
            <table width="100%" border="0" cellspacing="10"
                cellpadding="0">
                <tr>
                    <td width="45%">Question File :</td>
                    <td></td>
                    <td width="55%"><input type="file"
                        name="question.questionFile" id="questionFile" /></td>
                </tr>
            </table>
        </s:form>

    </sj:dialog>
</s:iterator>

但它始终将id作为DivQuestionAnswer<%=counter%>。不像DivQuestionAnswer1,DivQuestionAnswer2,DivQuestionAnswer3。

2 个答案:

答案 0 :(得分:1)

您无法将Scriptlet(<% %>that you shouldn't use at all)与Struts标记(或Struts2-jQuery标记)混合使用。

此外,您不需要:使用Iterator,您可以获得一个IteratorStatus对象,可用作计数器:

<s:iterator value="campaignList" status="currRow">
    <sj:dialog id="DivQuestionAnswer%{#currRow.count}" ... >

注意:#currRow.count从1开始,#currRow.index从0开始。

答案 1 :(得分:0)

`“你把计数器放在双引号内,所以它不起作用。

"\"" + <%=counter%>+ "\""