struts 对话框未使用 jsp scriptlet

struts dialog box not taking jsp scriplet

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

<%
    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。

`" 您已将计数器放在双引号内,因此它不会起作用。

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

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

你也不需要:使用迭代器,你会得到一个 IteratorStatus 对象,它可以用作计数器:

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

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