struts2 Action如何返回到视图中
来源:互联网 发布:关键词大数据 编辑:程序博客网 时间:2024/06/06 03:06
Struts2框架 通过配置 result标签来 把Action的处理结果和视图对应,来决定Action返回到哪一个视图
1.Action的处理结果是一个字符串,Action把这个处理结果交给Struts2框架
2.Struts2框架决定这个处理结果对应哪个视图。
<struts> <package name="users" namespace="/users" extends="struts-default"> <action name="*_*" class="action.{1}Action" method="{2}"> <!-- name:action返回结果,默认是success --> <!-- result的值 如果有"/" 表示:.jsp页面的绝对路径 --> <!-- result的值 如果没有有"/" 表示:jsp页面 是执行action所在的package-namespace指定的路径--> <result name="success">/users/success.jsp</result> </action> </package></struts>
1. result标签-name属性 代表Action的返回值:Struts2框架内置的5个返回值
SUCCESS:Action正确执行,返回给响应视图
NONE:Action正确执行,不返回任何视图
FAILURE:Action执行失败,返回处理错误结果的视图。
LOGIN:Action因为没有登录而执行失败,返回登录视图
INPUT :Action执行需要从前端页面获取参数,但是对这些参数的验证不通过( 1.参数类型转换错误(在age等)2.某些input值不能为空等),将自动返回该视图
上面的意思是:如果Action中的某个方法返回的是SUCCESS,将对应配置文件中<result name="success">
,至于配置文件中<result name="success">
对应哪个视图,就由程序员说了算了。
public class LoginAction { // 处理登录请求 public String login() { // 如果用户名是amdin密码是123,用户登录成功 return SUCCESS; }}
<struts> <package name="users" namespace="/" extends="struts-default"> <action name="*_*" class="action.{1}Action" method="{2}"> <result name="success">/users/users_login_success.jsp</result> </action> </package></struts>
处理结果类型INPUT比较特殊 Action会自动返回 INPUT
情况一:参数类型转换错误。如果表单的参数中含有整形变量,但是表单中提交的是字符串,这时Action会自动返回INPUT. 并不会返回Action自定义的返回值。
<form action="login.action" method="post"> <div> 用户名:<input type="text" name="username"></input> </div> <div> 年龄:<input type="text" name="age"></input> </div> <div> <input type="submit" value="登录" /> </div> </form>
public class LoginAction { private String username; private Integer age; // 处理登录请求 public String login() { if ("admin".equals(username) ) { session.put("loginInfo", username); return SUCCESS; } else { session.put("loginError", "用户名或密码错误"); return ERROR; } }}
情况二:校验结果 this.addFieldError(“username”, “用户名不能为空”);中有数据
如果校验的 代码写在自定义方法中,要显示定义 返回INPUT
public String login() { if (username == null || "".equals(username)) { this.addFieldError("username", "用户名不能为空"); return INPUT; } if ("admin".equals(username) && "123".equals(password)) { session.put("loginInfo", username); return SUCCESS; } else { session.put("loginError", "用户名或密码错误"); return ERROR; } }
情况三:校验代码写在validate()方法中 并且校验结果 this.addFieldError(“username”, “用户名不能为空”);中有数据 会自动返回INPUT
@Overridepublic void validate() { if (username == null || "".equals(username)) { this.addFieldError("username", "用户名不能为空"); }}
2. result标签的type属性 代表处理结果的类型
<action name="author"> <result name="success" type="">/users/success.jsp</result></action>
struts2支持多种视图技术:JSP, Valocity,FreeMarker等
result中的type类型,type属性值代表的是支持的视图类型
type的默认值是dispatcher 支持jsp视图技术
属性值:chain:将action和另外一个action链接起来。
属性值:redirect:重定向(会丢失请求参数)。
属性值:plaintext:返回网页源代码。
属性值:stream:返回inputstream用于文件下载。
3. result标签的子标签
<action name="author"> <result name="success"> <!-- location属性 定义了该视图赌赢的实际视图资源 --> <param name="location">/users/success.jsp</param> <!-- parse属性 执行是否可以在实际视图名字中使用OGNL表达式,默认可以 --> <param name="parse">false</param> </result></action>
4. Action的返回结果有两种类型:局部结果和全局结果。
局部结果:每个Action中的结果 局部结果把<result>
标签配置在<action>
标签中
全局结果:所有Action共用的结果 全局结果把<result>
标签配置在<global-results>
标签中
<struts> <package name="pack001" extends="struts-default"> <!-- 如果是404错误 --> <global-results> <result name="ERROR404">/note.jsp</result> </global-results> </package></struts>
- struts2 Action如何返回到视图中
- Struts2中Action返回Json
- struts2 视图发请求到Action
- 【struts2】jsp如何获取struts2 action中返回的对象的值
- struts2中Action中返回Json数据
- struts2一个action返回到另一个action的特定result
- Struts2中Action的返回结果类型
- Struts2.0中Action直接返回字符串
- struts2 中action返回的类型
- Struts2中Action返回Json串
- struts2中action返回"json"字符串
- Struts2.0中Action直接返回字符串
- jsp如何获取struts2 action中返回的对象的值
- jsp如何获取struts2 action中返回的对象的值
- jsp如何获取struts2 action中返回的对象的值
- struts2 action的result如何跳转到另一个action
- struts2中如何利用链接来传递对象到action中
- struts2中超链接到另一个action
- Ubuntu环境下TensorBoard 可视化 不显示数据问题 No scalar data was found...(作者亲测有效)
- java.lang.IllegalStateException: No tab known for tag null
- Python在Windows环境下处理文件路径问题最佳实践
- Codeforces Round #435 (Div. 2)C,D,E,F题目详解
- Java的代码质量优化的注意细节
- struts2 Action如何返回到视图中
- 微信:微信扫码支付、调用统一下单接口、网站支付 + springmvc
- 游戏中用到的方向向量
- HDU 4739 Zhuge Liang's Mines 暴力 or 状压.
- PHP字符串转时间问题
- Leetcode之Merge Intervals 问题
- 12.3 第一个Spirng应用单词表:HelloSpring
- CSI ETABS 2015 v15.1.
- Unity3d九 碰撞控件和代码的使用