当前位置: 代码迷 >> Java Web开发 >> struts2拦截器中的成员变量怎么通过ognl表达式在前段显示
  详细解决方案

struts2拦截器中的成员变量怎么通过ognl表达式在前段显示

热度:23   发布时间:2016-04-14 20:40:10.0
struts2拦截器中的成员变量如何通过ognl表达式在前段显示
我现在的想法是一个业务Action在struts2的xml配置中配置了两个两个拦截器,一个拦截器是为了检测session是否有用户,就是检测当前用户是否登陆了,另外一个拦截器主要是检测当前用户是否有权限做这个交易,现在问题来了如果拦截器检测到session中用户为空就是用户没有登录我就跳转到一个显示提示信息的页面
拦截器代码如下
public class CheckLoginStatus extends AbstractInterceptor {
private String resInfo;
private String redirPath;
public String getResInfo() {
return resInfo;
}
public void setResInfo(String resInfo) {
this.resInfo = resInfo;
}
public String getRedirPath() {
return redirPath;
}
public void setRedirPath(String redirPath) {
this.redirPath = redirPath;
}
@Override
public String intercept(ActionInvocation ac) throws Exception {
if(ActionContext.getContext().getSession().get("userInfo")==null){
this.setRedirPath("login.html");
this.setResInfo("请先登录后操作!");
return "input";

return ac.invoke();
}

}

我想在前端通过
<s:property value="resInfo"/>

来显示报错信息,这样我的报错信息会比较灵活,可以用程序控制,现在问题是前端显示为空,我在前端页面中使用<s:debug/>来查看valueStack结果在其中没有看到拦截器中的成员变量,请问我该怎么办
------解决思路----------------------
楼主你的数据根本没放入值栈中,你可以ac.getInvocationContext().put("resInfo","请先登录后操作!");这样就能放入当前action的值栈
  相关解决方案