java - 是否可以在 JSP 中访问后端方法?

标签 java jakarta-ee syntax struts2 java-ee-6

我正在使用 Struts2 构建 Web 应用程序,我的 BaseAction 中有一个后端方法类,所有其他 Action 类扩展它的类,如下所示:

public boolean isUserFullyLogged() {
    final Boolean isLogado = (Boolean) this.retrieveSessionAttribute(Constantes.LOGADO);
    return (isLogado != null) && isLogado.booleanValue();
}

我希望在我的一个 JSP 中使用它来显示或不显示某些内容,我已经尝试了三种不同的方式,如下所示:

  • <s:if test="#userFullyLogged">Content</s:if>
  • <s:if test="%{#userFullyLogged}">Content</s:if>
  • <s:if test="userFullyLogged">Content</s:if>

但是以上都不起作用,根本就没有调用该方法。谁能告诉我正确的语法?

最佳答案

无需更改方法名:

<s:if test="isUserFullyLogged()">Content</s:if>

请注意,如果您需要阻止整个页面,而不是单个功能,您应该在拦截器内部进行这种检查,方法是将包含自定义 LoginInterceptor 的拦截器堆栈应用到所有只有经过身份验证的用户才需要打开的操作。

关于java - 是否可以在 JSP 中访问后端方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22769224/

相关文章:

java - 使用 JNDI 添加 LDAP 条目

java - 从 3.0 版本开始,Quartz 调度程序不再对 Spring 有用吗?

windows - Wildfly 10 上的 WebSocket 无法在 Windows 10 上运行

asp.net - 如何在 masterpage.master 中访问 masterpage.master.vb 中定义的变量

javascript - 为什么这里需要分号?

python - Python 中的 % 语法

java - getRaster 方法中出现数组越界异常

java - 控制台输出到 HTML 文件

java - 如何在参数化构造函数中使用枚举?

java - 从jsp获取子类:useBean