
struts2配置Interceptor过滤器后在action中不能得到表单中的数据
表单<formaction="login"method="post">用户<inputtype="text"name="adminName">密码<inputtype="...
表单
<form action="login" method="post">
用 户<input type="text" name="adminName">
密 码<input type="password" name="passwd">
<package name="myadmin" extends="struts-default">
<interceptors>
<interceptor name="checkAdmin"
class="daiyi.util.AdminInterceptor">
<param name="excludeMethods">login</param>
</interceptor>
<interceptor-stack name="myInterceptor">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="checkAdmin"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myInterceptor"/>
<global-results>
<result name="login">adminLogin.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="error"
exception="java.lang.NullPointerException"/>
</global-exception-mappings>
<action name="login" class="daiyi.action.AdminAction">
<interceptor-ref name="myInterceptor"/>
<result name="input">adminLogin.jsp</result>
<result name="success">admin/admin_index.jsp</result>
</action>
public class AdminAction extends ActionSupport{
private String adminName;
private String passwd;
省略set get
}
过滤器
public class AdminInterceptor extends MethodFilterInterceptor{
public void init(){
}
public String doIntercept(ActionInvocation aiv) throws Exception {
Map session=aiv.getInvocationContext().getSession();
AdminBean adminBean=(AdminBean)session.get("admin");
if (adminBean!=null) {
return aiv.invoke();
} else {
HttpServletRequest request=ServletActionContext.getRequest();
request.setAttribute("msg", "请重新登录");
return Action.LOGIN;
}
}
public void destroy(){
}
} 展开
<form action="login" method="post">
用 户<input type="text" name="adminName">
密 码<input type="password" name="passwd">
<package name="myadmin" extends="struts-default">
<interceptors>
<interceptor name="checkAdmin"
class="daiyi.util.AdminInterceptor">
<param name="excludeMethods">login</param>
</interceptor>
<interceptor-stack name="myInterceptor">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="checkAdmin"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myInterceptor"/>
<global-results>
<result name="login">adminLogin.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="error"
exception="java.lang.NullPointerException"/>
</global-exception-mappings>
<action name="login" class="daiyi.action.AdminAction">
<interceptor-ref name="myInterceptor"/>
<result name="input">adminLogin.jsp</result>
<result name="success">admin/admin_index.jsp</result>
</action>
public class AdminAction extends ActionSupport{
private String adminName;
private String passwd;
省略set get
}
过滤器
public class AdminInterceptor extends MethodFilterInterceptor{
public void init(){
}
public String doIntercept(ActionInvocation aiv) throws Exception {
Map session=aiv.getInvocationContext().getSession();
AdminBean adminBean=(AdminBean)session.get("admin");
if (adminBean!=null) {
return aiv.invoke();
} else {
HttpServletRequest request=ServletActionContext.getRequest();
request.setAttribute("msg", "请重新登录");
return Action.LOGIN;
}
}
public void destroy(){
}
} 展开
2个回答
展开全部
和我自己的相关文件比对了,没有问题,如果不能正常运行,建议加入一些打印语句,看一看运行情况,比如哪些方法执行没有啊什么的,见效比较快
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询