我选择通过Interceptor实现权限拦截,即判断session中时候存在登录的用户,如没有(即用户没有登录),直接Action.LOGIN返回到登录页面,不再调用拦截的acion方法,但返回的login页面没有任何“用户未登录”的提示信息,请问如何实现,能在登录页面显示“您未登录或是请重新登录”呢?
问题补充:
在action中可以使用类似addActionMessage()的功能,我是想知道在连接器里如何实现。
struts2 如何通过Interceptor向页面发送消息
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- loupo_sjg 2008-10-24 10:19关注
以下是拦截器中的代码,判断完是否登陆以后直接put一个message到session中。
[code="java"]package com.test.interceptor;import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;@SuppressWarnings("serial")
public class CheckLoginInterceptor extends AbstractInterceptor {@SuppressWarnings("unchecked") @Override public String intercept(ActionInvocation invocation) throws Exception { Map map = invocation.getInvocationContext().getSession(); if (map.get("user") == null) { map.put("message", "please login"); return Action.LOGIN; } else { return Action.SUCCESS; } }
}
[/code]
然后在JSP也就是登陆页面中增加如下一行显示。
[code="html"]
/s:textfield
/s:password
/s:submit
/s:form
[/code]就是用到了 struts2的标签,好好学一下吧!
:-),偶也不太熟。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 无法装系统,grub成了顽固拦路虎
- ¥15 springboot aop 应用启动异常
- ¥15 matlab有关债券凸性久期的代码
- ¥15 lvgl v8.2定时器提前到来
- ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
- ¥15 cam_lidar_calibration报错
- ¥15 拓扑学,凸集,紧集。。
- ¥15 如何扩大AIS数据容量
- ¥15 单纯型python实现编译报错
- ¥15 c++2013读写oracle