您的位置:首页 > 编程语言 > Java开发

struts2 @Action给方法注解

2016-01-09 17:11 716 查看
项目中需要增加一个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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts2.0