struts2 @Action给方法注解

项目中需要增加一个action,此action运行后返回与登陆后的index的页面相同,但是页面中有额外的js来进行模拟附加参数点击跳转功能。
实现这个功能有几个注意点:
1. 该action最好不要放在.web package下,而是放到.terminal package下,不影响项目原来管理(so java文件必须放在terminal, 配置路径要在根目录路径下)
2. 改action访问路径要为http://localhost:8080/tms/xxx.action,以使后续其他菜单操作不收影响
2. 修改index.jsp最好不要放到WEB-INF根目录下,而是放到WEB-INF/content/terminal下,方便管理(so jsp文件必须放在terminal下,配置对应路径)
3. 需要修改return string,这样不要直接返回convention约定的jsp,而是可以自己修改

基于上面的原因,所以采用注解配置来跳出convention约定的规则

@Action(value = "/terminal-map-manager", results = { @Result(name = "manager", location = "terminal/terminal-map-manager.jsp") })
  • value:配置访问路径,使用/表示根路径,后面加上访问路径,不需要action结尾,注意!

  • results/result:配置结果映射

  • name: 配置返回的String, location:配置jsp所在路径,这样可以自由定义路径啦

注意:对Action类中的方法添加@Result注解,@Result将只作用于被添加的方法。Action类方法上添加的@Result优先级高于Action类上添加的@Result。(前者覆盖后者)
    @Action(value = "/terminal-map-manager", results = { @Result(name = "manager", location = "terminal/terminal-map-manager.jsp") })
    public String execute() throws Exception {

         Map paramMap = Struts2Utils.getRequest().getParameterMap();
         String[] sn = (String[])paramMap.get("filter_LIKES_sn");
         System.out.println("sn:"+sn);
         String[] tsn = (String[])paramMap.get("filter_LIKES_terminal-sn");
         System.out.println("tsn:"+tsn);

         paramName="";
         if(sn != null && sn.length >0){
             paramName = "filter_LIKES_sn";
         }

         if(tsn != null && tsn.length >0){
             paramName = "filter_LIKES_terminal-sn";
         }

         System.out.println("paramName:"+paramName);

        param="";
        param = Struts2Utils.getParameter(paramName);
        System.out.println("param:"+param);

        if(param != null && param.length()>0 && paramName != null && paramName.length() >0){
            //获取当前用户
            MUser user = (MUser) Struts2Utils.getSession().getAttribute(LoginAction.CURRENT_USER_KEY);
            //根据用户Id获取当前用户的可操作菜单
            menus = menuService.searchMenu(user.getId());
            return "manager";
        }else{
            return NONE;
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值