我在项目中从2.3.4.1升级到struts 2.3.16.3,以下标记停止工作。
<s:param name="%{#key}" value="%{#keyValue}"/>
param
标记内正在使用s:url
。正在评估名称部分,但不评估该值,并在页面的url中显示为文本“keyValue”。此标记位于联系人jsp中,该jsp包含在其他jsps中。 key
和keyValue
在父jsp中定义。
例如,<s:set var="key" value="'billToId'" />
<s:set var="keyValue" value="'%{billToId}'"/>
我尝试在struts.xml中设置以下常量,但它没有解决问题。
<constant name="struts.ognl.enableOGNLEvalExpression" value="true" />
我已针对此问题提出了解决方法,但有没有办法使用此ognl表达式从值堆栈中读取值。
答案 0 :(得分:0)
我不记得自param
标记仅接受String
类型的值以来的时间。它可能是一个错误,但实际参数值类型应转换为String
类型。另请参阅Suppress empty parameters using param tag。
答案 1 :(得分:0)
您使用的是jsp:include还是s:include? p>
正在使用@AndreaLigios
<%@ include file="/WEB-INF/jsp/contact/listContacts.jspf"%>
<%@ include
是静态包含指令,您应该使用动态<jsp:include/>
标记,甚至更好,因为您使用的是Struts2 <s:include/>
标签。
详细了解detailed answer。