1. Struts2中接收参数
(1)用Action(class)中的属性来接收参数:自动匹配
View Code
当访问http://localhost:8080/struts2Deomo/useradd?username=bai&age=3时,
Struts2回自动调用useraddd相对应的Action类中的getUsername()和getAge()方法
(2)使用DomainModel来接受参数
当参数个数只是action类属性中的一部分,而非所有的时候,可以用DomainModel来接收。Domain(域)一般是一个普通的类,
View Code
import com.opensymphony.xwork2.ActionSupport; public class User //普通类,而不是一个action类,没有 extends ActionSupport { private String username; private int age; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
域模型是用来接收参数,并调用相对应参数的get方法,而不是全部属性的get方法。域模型中的Action包含一个属性是domain类的一个对象:
View Code
1 import com.opensymphony.xwork2.ActionSupport; 2 3 public class UserAction extends ActionSupport 4 { 5 private User user; 6 7 public String getUser() 8 { 9 return user; 10 } 11 public void setUser(User user) 12 { 13 this.user= user; 14 } 15 16 @Override 17 public String execute() 18 { 19 return SUCCESS; 20 } 21 22 }
浏览器上的url地址为:http://localhost:8080/struts2Deomo/useradd?user.username=ba,则会调用user类中的getUser()方法。
2. 简单数据验证
在Action中使用addFieldError来保存验证错误信息:
1 public String add() 2 { 3 if(username == null || username != "bai") 4 { 5 this.addFieldError("username", "用户名不对"); 6 return ERROR; 7 } 8 else 9 return SUCCESS; 10 }
在error.jsp中显示错误信息:
1 <body> 2 错误提示:. <br> 3 <!--使用fielderror标签 --> 4 <s:fielderror fieldName="username"></s:fielderror> 5 <!--使用property标签,property标签可以取得value stack中的内容 --> 6 <s:property value="errors.username[0]"/> 7 </body>