fanggang0502 2008-10-23 13:21
浏览 155
已采纳

struts2 如何通过Interceptor向页面发送消息

我选择通过Interceptor实现权限拦截,即判断session中时候存在登录的用户,如没有(即用户没有登录),直接Action.LOGIN返回到登录页面,不再调用拦截的acion方法,但返回的login页面没有任何“用户未登录”的提示信息,请问如何实现,能在登录页面显示“您未登录或是请重新登录”呢?
问题补充:
在action中可以使用类似addActionMessage()的功能,我是想知道在连接器里如何实现。

  • 写回答

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的标签,好好学一下吧!
    :-),偶也不太熟。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥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