无法访问Struts jsp上的变量集

时间:2017-01-10 16:21:05

标签: java jsp struts2 struts

我的项目遇到了一些麻烦。实际状态是,在其他人迁移到Struts 2之后,我负责修复错误。

现在,我遇到了一些生成一些报告的jsp文件的麻烦。他们分享了一些随<%@ include file="file.jsp" %>添加的元素,例如&#34; KeyDate&#34; &#34; country&#34; &#34;组织&#34; 等等。这是在生成报告时进行限制的参数。因此,它们是从其他文件中添加的,其中包含带有相应标记的代码段以允许重用。

这是以前的版本(文件片段):

<c:set var="keyDateProperty" value="keyDate"></c:set>

<%@ include file="/WEB-INF/include/reports/reportKeyDate.jsp" %>

并且reportKeyDate.jsp:

            <td><p id="labelKeyDate"><bean:message key="label.keyDate"/>*</p></td>
            <td colspan="2"><p>
                <html:text styleId="fieldKeyDate" style="width: 90%;" 
                    readonly="true" disabled="${readOnly}" property="${keyDateProperty}" 
                    errorStyleClass="inputError" onkeyup="updateCurrentFilterCriteria();" />
                    <html:messages id="error" property="${keyDateProperty}">
                        <p class="error"><c:out value="${error}" /></p>
                    </html:messages>
                <img id="imgKeyKdate" style="cursor: pointer; vertical-align: middle;" 
                    src="img/iconCalendar.gif" 
                    title="<bean:message key="tooltip.chooseDate"/>" alt="">
            </p></td>

到目前为止一切顺利。这就是它对迁移的看法:

<s:set var="keyDateProperty" value="keyDate"></s:set>

<%@ include file="/WEB-INF/include/reports/reportKeyDate.jsp" %>

并且reportKeyDate.jsp:

            <td><p id="labelKeyDate"><s:text name="label.keyDate"/>*</p></td>
            <td colspan="2"><p>
                <s:textfield id="fieldKeyDate" style="width: 90%;" 
                    readonly="true" disabled="%{#attr.readOnly}" name="%{keyDateProperty}" 
                    cssErrorclass="inputError" onkeyup="updateCurrentFilterCriteria();" />
                    <s:fielderror fieldName="%{keyDateProperty}" />
                <img id="imgKeyKdate" style="cursor: pointer; vertical-align: middle;" 
                    src="img/iconCalendar.gif" 
                    title="<s:text name='tooltip.chooseDate'/>" alt="">
            </p></td>

所以基本上html:代码已迁移到s:

你们可以看到指向struts表单元素的变量名称设置在顶部s:set,然后在包含的代码段上访问。这显然是行不通的。我试图调试方法setKeyDate()并且没有被调用。我曾尝试将代码段直接添加到文件中,并将name属性直接定义到keyDate,并且在我调试它时它会起作用。

欢迎任何建议或想法! 提前谢谢。

0 个答案:

没有答案