我的项目遇到了一些麻烦。实际状态是,在其他人迁移到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
,并且在我调试它时它会起作用。
欢迎任何建议或想法! 提前谢谢。