Struts 1.2.8 HTML标记库和JBoss的间歇性问题

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

我有一个遗留的Struts 1.2.8应用程序,我正在维护它,并将其从Oracle application Server(OAS)10g移植到JBoss 4.2.3。我有一个使用Struts HTML标记库的JSP。JSP页面由EJB支持。用户输入项目编号,页面显示项目的详细信息(例如,产品目录中的项目)

在我使用此页面的前3次中,正确返回了项目详细信息。但由于某些原因,在第四次提交页面和随后提交的页面上,某些项目信息缺失。我正在使用

<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的值