ActionInvocation实例的invoke()与invokeActionOnly()
- 781 次检阅

ActionInvocation实例的invoke()方法

ps:表示调用下一个拦截器或Action,调用invoke()方法时, intercept()方法可任意返回需要的字符串值,一般返回null即可.

  1. invoke()前的代码为请求向下走之前的业务流程处理
  2. invoke()后的代码为嵌套调用流程执行完毕后,请求重新回到原处的后继业务流程处理,相当于方法嵌套调用完毕重新回到原处。
  3. invoke()返回值为嵌套调用拦截器intercept()的返回值或Action返回的处理结果字符串,即上一个流程的返回值

ActionInvocation实例invokeActionOnly()方法

ps:表示抛开所有末调用的嵌套拦截器,直接调用Action.

调用invokeActionOnly()方法时,需注意:

  1. intercept()方法需有返回值,否则Action将无法正确调用视图响应
  2. intercept()方法中可直接返回到视图页面,而流程不往下传递。

intercept()方法中可直接返回与控制器中Action配置相匹配的字符串,并找到响应视图

如返回“error”字符串,会自动找到对应在控制器配置的error页面响应。


简单的项目作业...

设置一个登录页面 包含:用户名、密码输入框、提交按钮, 后台获取两个表单值后进行比对, 如果用户名与密码内容相同则跳到验证成功页面, 如果用户名与密码内容不同则跳到验证失败页面。用Struts框架完成。

增加两个自定义拦截器

拦截器1: 检查用户名、密码输入框是否为空 为空时返回到error1.jsp页面,并提示输入错误

拦截器2: 检查用户名中是否包含“admin”字符串 不包含“admin”字符串时返回到error2.jsp页面,提示没有权限

效果请自行测试,代码有点乱请别介意...

代码如下:

login.jsp

success.jsp、fail.jsp、error.jsp三个页面省略...

Action类

interceptor 类

验证是否是管理员

验证表单

Struts.xml

Web.xml

375611971363640027

分享到:
, ,

这篇文章还没有评论

发表评论