根据标签文件中的TLD或属性指令,属性名称不接受任何表达式

我在JSP中编写以下代码。

<%

String p_loginPassword = OpeCommon.LOGIN_PASSWORD;

String p_encryptCode = OpeCommon.encriptPassword(OpeCommon.KEY_USER_ID, OpeCommon.KEY_USER_PASSCODE);

%>

<s:url id="printURL" action="actMod" method="printout">

<s:param name="<%=OpeCommon.LOGIN_PASSWORD %>"><%=OpeCommon.encriptPassword(OpeCommon.KEY_USER_ID, OpeCommon.KEY_USER_PASSCODE)%></s:param>

</s:url>

它显示错误:根据标签文件中的TLD或属性指令,属性名称不接受任何表达式

我应该如何写,请给我一些建议。

回答:

不要在struts标记中使用scriptlet,在JSP中不要使用它,如果不能的话,可以尝试

<s:set var="loginPassword"><%=OpeCommon.LOGIN_PASSWORD %></s:set>

<s:param name="%{#loginPassword}"><%=OpeCommon.encriptPassword(OpeCommon.KEY_USER_ID, OpeCommon.KEY_USER_PASSCODE)%></s:param>

注意,可以通过OGNL表达式访问常量,并且struts标记中允许使用该表达式。但是,它适用于OGNL语法,您应该为静态内容提供FQCN。常量不需要在配置中启用静态访问,但是需要调用静态方法。如果您允许静态访问,则所有操作都可以通过OGNL表达式完成,不仅可以像

<s:param name="%{@com.package.OpeCommon@LOGIN_PASSWORD}">

以上是 根据标签文件中的TLD或属性指令,属性名称不接受任何表达式 的全部内容, 来源链接: utcz.com/qa/435582.html

回到顶部