Struts 1.2.8 HTML标记库和JBoss的间歇性问题
我有一个遗留的Struts 1.2.8应用程序,我正在维护它,并将其从Oracle application Server(OAS)10g移植到JBoss 4.2.3。我有一个使用Struts HTML标记库的JSP。JSP页面由EJB支持。用户输入项目编号,页面显示项目的详细信息(例如,产品目录中的项目) 在我使用此页面的前3次中,正确返回了项目详细信息。但由于某些原因,在第四次提交页面和随后提交的页面上,某些项目信息缺失。我正在使用Struts 1.2.8 HTML标记库和JBoss的间歇性问题,jboss,struts,Jboss,Struts,我有一个遗留的Struts 1.2.8应用程序,我正在维护它,并将其从Oracle application Server(OAS)10g移植到JBoss 4.2.3。我有一个使用Struts HTML标记库的JSP。JSP页面由EJB支持。用户输入项目编号,页面显示项目的详细信息(例如,产品目录中的项目) 在我使用此页面的前3次中,正确返回了项目详细信息。但由于某些原因,在第四次提交页面和随后提交的页面上,某些项目信息缺失。我正在使用 <html:hidden property="item
<html:hidden property="itemNumber"/>
<html:text property="itemNumber"/>
标签。这个问题的奇怪之处在于,我无法在OAS中重现这个问题。此外,如果我将上面的html:text标记替换为
<input type="text" value="<%=itemForm.getItemNumber() %>" >
代码工作正常。我猜这是一个会话/请求/范围问题。但我还没有找到正确的配置
JBoss中的Struts是否需要特殊配置?在Struts-config.xml文件中检查用于操作的范围。很可能您希望作用域是请求。问题在于缓存中的。默认配置为 enablePooling - Determines whether tag handler pooling is enabled. true or false, default true. enablePooling-确定是否启用标记处理程序池。真假,, 默认为true。 我能够将enablePooling设置为false,我的问题得到了解决。我想这是Jasper中的一个bug。当JSP自定义标记(例如html:hidden)后面跟着一个名称为“value”的JSP:attribute时,就会出现此错误。见下文
<html:hidden property="itemNumber"/>
.
.
<html:text property="regularPrice" maxlength="9" readonly="<%=disabled%>"
tabindex="9" onkeyup="onRegularPriceChanged(this)">
<jsp:attribute name="value">
<webmodules:currency onlyDisplayValue="false">
<jsp:attribute name="currencyValue">
<bean:write name="updateItemForm" property="regularPrice"/>
</jsp:attribute>
</webmodules:currency>
</jsp:attribute>
</html:text>
.
.
html:hidden设置的“值”和jsp:attribute设置的“值”之间似乎存在名称空间和缓存冲突。在JSP页面被使用两次之后,由JSP:属性设置的缓存值被用作html:hidden的值