当前位置: 首页 > 知识库问答 >
问题:

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

壤驷棋
2023-03-14

我用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或属性指令,属性名称不接受任何表达式

我应该怎么写,请给我一些建议。

共有1个答案

易元青
2023-03-14

不要在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}">
 类似资料:
  • 问题内容: 我有一个项目,需要在HTML页面中显示电影的详细信息。尽管我没有使用像Spring或Struts这样的框架,但我必须严格遵循MVC。我也不允许使用scriptlet,但要使用JSTL和表达语言。我通常从数据库中检索数据,然后将其设置为Bean,然后列出这些Bean并将其传递给JSP,然后打印这些详细信息。但是,如果不允许我使用JSP,我将如何实现它。如果我使用servlet检索那些数据

  • 我有以下索引页面: 还有家。jsp: 我收到了这个错误 根据标记文件中的TLD或属性指令,属性动词不接受任何表达式 有人能帮忙吗?

  • 我一直在谷歌上搜索答案,但它不起作用。 我收到这个错误: org.apache.jasper.JasperException: /WEB-INF/pages/calendarEntry.jsp(行:5,列:46)根据标记文件中的TLD或属性指令,属性var不接受任何表达式 这是我的jsp文件 错误发生在最后一行。fmt公司 Web应用声明 Maven从属关系 部署环境-Tomcat 8

  • 有人能帮忙解决以下问题吗。 我试图理解在jsp文件中的c:foreach元素中使用变量标记,所以我使用了下面的示例代码,但不知怎么的,这对我来说并不适用。 我已经把index1.jsp在WebContent文件夹中,并在Java资源/src/com/java2s文件夹中xport.java空标签;dis.tld在WebContent/WEB-INF/tld文件夹中。运行时,我得到错误: index

  • 我在tomcat中部署了一个阔叶应用程序,但在运行页面时,根据TLD,我得到的属性类对于标记形式无效。不过,当我在jetty中部署应用程序时,它运行良好。此外,当我部署应用程序时,我会收到以下警告:- 信息:TLD已跳过。URI:http://www.springframework.org/tags/form已定义信息:TLD已跳过。URI:http://www.springframework.o

  • 嵌套异常是com.fasterxml.jackson.databind.jsonMappingException:无法从START_OBJECT令牌反序列化java.lang.String实例