Struts 2.1:基于OGNL的类型转换
2011-09-13 22:16
309 查看
Struts 2内建的OGNL表达式的支持,因此在Struts 2中甚至可以直接将字符串参数转换成符合类型。
使用MAP实例
lee\LoginAction.java
lee\User.java
\input.jsp
类似的,如果我们要访问Action的Map类型的属性,也可以使用OGNL表达式:
如果把LoginAction中的users属性改为List<String>,一样可以利用OGNL表达式:
使用MAP实例
lee\LoginAction.java
package lee; import com.opensymphony.xwork2.Action; import java.util.Map; public class LoginAction implements Action { //User类型属性封装请求参数 private Map<String ,User> users; private String tip; //user属性的setter和getter方法 public void setUsers(Map<String ,User> users) { this.users = users; } public Map<String ,User> getUsers() { return (this.users); } //tip属性的setter和getter方法 public void setTip(String tip) { this.tip = tip; } public String getTip() { return (this.tip); } //处理用户请求的execute方法 public String execute() throws Exception { //通过user属性的name属性和pass属性来决定转向 if (getUsers().get("one").getName().equals("crazyit") && getUsers().get("one").getPass().equals("leegang")) { setTip("转换成功"); return SUCCESS; } else { setTip("转换失败"); return ERROR; } } }
lee\User.java
package lee; public class User { //两个普通属性 private String name; private String pass; //无参数的构造器 public User() { } //初始化全部属性的构造器 public User(String name , String pass) { this.name = name; this.pass = pass; } //name属性的setter和getter方法 public void setName(String name) { this.name = name; } public String getName() { return this.name; } //pass属性的setter和getter方法 public void setPass(String pass) { this.pass = pass; } public String getPass() { return this.pass; } }
\input.jsp
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>直接封装成Map</title> </head> <body> <form action="login.action" method="post"> <table align="center" width="360"> <caption><h3>直接封装成对象Map</h3></caption> <tr> <td>第一个用户名:<input type="text" name="users['one'].name"/></td> </tr> <tr> <td>第一个密码:<input type="text" name="users['one'].pass"/></td> </tr> <tr> <td>第二个用户名:<input type="text" name="users['two'].name"/></td> </tr> <tr> <td>第二个密码:<input type="text" name="users['two'].pass"/></td> </tr> <tr align="center"> <td><input type="submit" value="转换"/> <input type="reset" value="重填" /></td> </tr> </table> </form> </body> </html>
类似的,如果我们要访问Action的Map类型的属性,也可以使用OGNL表达式:
<body> 转换成功!<br /> key为one的用户名为:<s:property value="users['one'].name"/><br /> key为one的密码为:<s:property value="users['one'].pass"/><br /> key为two的用户名为:<s:property value="users['two'].name"/><br /> key为two的密码为:<s:property value="users['two'].pass"/><br /> </body>
如果把LoginAction中的users属性改为List<String>,一样可以利用OGNL表达式:
<form action="login.action" method="post"> <table align="center" width="360"> <caption><h3>直接封装成对象 List</h3></caption> <tr> <td>第一个用户名:<input type="text" name="users[0].name"/></td> </tr> <tr> <td>第一个密码:<input type="text" name="users[0].pass"/></td> </tr> <tr> <td>第二个用户名:<input type="text" name="users[1].name"/></td> </tr> <tr> <td>第二个密码:<input type="text" name="users[1].pass"/></td> </tr> <tr align="center"> <td><input type="submit" value="转换"/> <input type="reset" value="重填" /></td> </tr> </table> </form>
相关文章推荐
- Struts2.1笔记(五):Struts2的类型转换
- struts2 基于OGNL的类型转换
- 基于OGNL的类型转换
- Struts2中基于OGNL的类型转换
- 【Struts2】:基于OGNL的类型转换
- struts2自定义类型转换(2)基于StrutsTypeConverter
- struts2 基于OGNL的类型转换
- struts2自定义类型转换(2)基于StrutsTypeConverter
- struts2自定义类型转换(2)基于StrutsTypeConverter
- Struts2基于OGNL的类型转换
- Struts2内建的类型转换器和基于OGNL的类型转换
- Struts2——基于StrutsTypeConverter的类型转换
- 基于OGNL的类型转换
- JavaWeb -- Struts 数据传输:OGNL和类型转换
- 4.1.2: Struts2的类型转换---基于ognl的类型转换
- Struts2的类型转换(1):基于ognl的类型转换
- JavaWeb -- Struts 数据传输:OGNL和类型转换
- Struts2.1笔记(六):Struts2的 类型转换(续)
- 我的第一个struts2.1-hibernate3.2程序(基于myeclipce2016)
- struts笔记 类型转换