【发布时间】:2014-12-30 08:04:47
【问题描述】:
我在项目中从 2.3.4.1 升级到 struts 2.3.16.3,但以下标记停止工作。
<s:param name="%{#key}" value="%{#keyValue}"/>
param 在s:url 标记内使用。名称部分正在评估,但值未评估并显示为页面中 url 内的文本“keyValue”。此标记在一个联系人 jsp 中,该 jsp 包含在其他 jsp 中。 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 表达式从值堆栈中读取值。
【问题讨论】:
-
确保您在 包含 JSP 中也有
<%@ taglib prefix="s" uri="/struts-tags" %>,并确保 tld 文件可用 -
你有代码吗?因为它似乎是重复的,但我不知道是哪一个。
-
@AndreaLigios taglib 包含在 jsp 中,我假设 tlds 可用,因为其他与 struts 相关的标签工作正常。
-
@RomanC 我已经包含了定义 key 和 keyValue 的代码。如果我需要添加其他内容,请告诉我。
-
你使用的是 jsp:include 还是 s:include ?