使用struts2自定义拦截器,要引入defaultStack
2016-03-12 02:23
465 查看
使用自定义的拦截器配置在struts配置文件的action中,还要引入defaultStack,否则使用了modelDriven的formBean将不能获取到form表单中字段的值。
action:
public class LoginAction implements Action, ModelDriven<UserForm> {
private UserForm userForm=new UserForm();
private IUserBO iUserBO;
public String login() {
User user=iUserBO.getUser(userForm.getUsername(), userForm.getPassword());
if (user!=null) {
return SUCCESS;
} else {
return ERROR;
}
}
public String execute() throws Exception {
// TODO Auto-generated method stub
return SUCCESS;
}
public UserForm getModel() {
return userForm;
}
public IUserBO getiUserBO() {
return iUserBO;
}
public void setiUserBO(IUserBO iUserBO) {
this.iUserBO = iUserBO;
}
}
拦截器:
view plaincopy
to clipboardprint?
public class FilterTest extends MethodFilterInterceptor {
Logger logger = Logger.getLogger(this.getClass());
@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
logger.info("==========action执行前插入代码===============");
String s=invocation.invoke();
logger.info("==========invocation.invoke():"+s);
logger.info("==========action执行后插入代码===============");
return s;
}
}
struts配置文件:
view plaincopy
to clipboardprint?
<struts>
<package name="struts" extends="struts-default" namespace="/test">
<interceptors>
<interceptor name="testInterceptor" class="filterBase.FilterTest">
</interceptor>
</interceptors>
<action name="loginAction" class="LoginAction" method="login">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
<interceptor-ref name="defaultStack"/>
<!-- 通过配置参数excludeMethods,设置不被拦截的方法,excludeMethods被拦截的方法 -->
<interceptor-ref name="testInterceptor">
<param name="includeMethods">login</param>
</interceptor-ref>
</action>
</package>
</struts>
action:
public class LoginAction implements Action, ModelDriven<UserForm> {
private UserForm userForm=new UserForm();
private IUserBO iUserBO;
public String login() {
User user=iUserBO.getUser(userForm.getUsername(), userForm.getPassword());
if (user!=null) {
return SUCCESS;
} else {
return ERROR;
}
}
public String execute() throws Exception {
// TODO Auto-generated method stub
return SUCCESS;
}
public UserForm getModel() {
return userForm;
}
public IUserBO getiUserBO() {
return iUserBO;
}
public void setiUserBO(IUserBO iUserBO) {
this.iUserBO = iUserBO;
}
}
拦截器:
view plaincopy
to clipboardprint?
public class FilterTest extends MethodFilterInterceptor {
Logger logger = Logger.getLogger(this.getClass());
@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
logger.info("==========action执行前插入代码===============");
String s=invocation.invoke();
logger.info("==========invocation.invoke():"+s);
logger.info("==========action执行后插入代码===============");
return s;
}
}
struts配置文件:
view plaincopy
to clipboardprint?
<struts>
<package name="struts" extends="struts-default" namespace="/test">
<interceptors>
<interceptor name="testInterceptor" class="filterBase.FilterTest">
</interceptor>
</interceptors>
<action name="loginAction" class="LoginAction" method="login">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
<interceptor-ref name="defaultStack"/>
<!-- 通过配置参数excludeMethods,设置不被拦截的方法,excludeMethods被拦截的方法 -->
<interceptor-ref name="testInterceptor">
<param name="includeMethods">login</param>
</interceptor-ref>
</action>
</package>
</struts>
相关文章推荐
- Java中对数组的排序方法总汇分析
- 第一发
- java内存
- 解决myeclipse中中文字太小的问题
- 单例模式
- Spring AOP(一)——什么是AOP
- Spring transaction事务之roll back回滚: rollback-for
- Java基础操作(一){DOS打开方式、DOS的命令简单操作}
- java 多线程实现生产者消费者模型
- 导入JavaEE5 library
- myeclipse struts2环境配置(入门教程)
- 重换电脑,收藏JDK
- Java编程思想学习(十一) 泛型
- 20145335郝昊《Java程序设计》第2周学习总结
- Eclipse安装Gradle插件及配置
- Spring学习笔记十五---NamedParameterJdbcTemplate和具名参数
- Dos命令
- Java基础--反射Reflect----Method
- Java基础---反射Reflect-----Array
- 多线程环境下JDBC驱动加载导致线程阻塞问题的分析、解决和深入学习