java - 无法从 Struts 2 标记内部访问 scriptlet 变量

标签 java jsp jakarta-ee struts2 scriptlet

我正在尝试访问 JSP 中 struts2 s:if 标记内的 scriptlet 变量

<%
Website website = (Website)request.getAttribute(Website.NAME);
out.println(website.isUkSite());  // prints true
 %>

<s:if test="#website.isIrishSite()">  // this is returning false 
....

实际上这个s:if应该评估为true。有什么问题吗?

最佳答案

问题是操作上下文中没有名为 website 的变量。为了使其正常工作,您可以使用

<%
Website website = (Website)request.getAttribute(Website.NAME);
out.println(website.isUkSite());  // prints true

ActionContext.getContext().put("website", website); 
 %>

但是 scriplets 是一个糟糕的选择,您可以删除此代码并使用

<s:if test="#request.website.isIrishSite()">

关于java - 无法从 Struts 2 标记内部访问 scriptlet 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20214652/

相关文章:

java - 如何在java中生成特定大小的二进制blob对象?

java - 单击时,jsp 页面中的按钮值应为 null

Java - 将字符串转换为列表

php - 如何进行跨域ajax调用

java - 使用EJB 来持久化。如何在其上配置持久性单元?

java - 带有 JMX 的 JEE 应用程序

java - 读取用户输入到列表,根据元素值排序,并按顺序返回数组中的列表元素 - Java

java - 使用MyBatis Generator,当提供NULL值时如何为列指定默认值?

java - 来自 RecyclerView 的 Cloud Firestore 文档的句柄 ID

java - 从 JasperReports 打印 PDF