第一種參數獲取方式: 編寫一個前端頁面,提交表單,做示例: 每次訪問Action都會創建一個新的實例(線程安全): 第二種方式獲取參數: 封裝一個實體類: 表單要修改下: 獲取參數: 第三種方式獲取參數: 模型驅動: 前端代碼: 獲取參數: 第四種獲取參數方式: 集合類型封裝: 前端表單: 獲取參數 ...
第一種參數獲取方式:
編寫一個前端頁面,提交表單,做示例:
<form action="${pageContext.request.contextPath}/Demo1Action"> 用戶名:<input type="text" name="name" /><br> 年齡:<input type="text" name="age" /><br> 生日:<input type="text" name="birthday" /><br> <input type="submit" value="提交" /> </form>
每次訪問Action都會創建一個新的實例(線程安全):
package param; import java.util.Date; import com.opensymphony.xwork2.ActionSupport; //第一種方式 public class Demo1Action extends ActionSupport { private String name; private Integer age; private Date birthday; public String execute() throws Exception{ System.out.println("name參數值:"+name+",age參數值:"+age+",生日:"+birthday); return SUCCESS; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
第二種方式獲取參數:
封裝一個實體類:
package domain; import java.util.Date; public class User { private String name; private Integer age; private Date birthday; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } @Override public String toString() { return "User [name=" + name + ", age=" + age + ", birthday=" + birthday + "]"; } }
表單要修改下:
<form action="${pageContext.request.contextPath}/Demo2Action"> 用戶名:<input type="text" name="user.name" /><br> 年齡:<input type="text" name="user.age" /><br> 生日:<input type="text" name="user.birthday" /><br> <input type="submit" value="提交" /> </form>
獲取參數:
package param; import com.opensymphony.xwork2.ActionSupport; import domain.User; //struts2如何獲得參數-方式2 public class Demo2Action extends ActionSupport { //準備user對象 private User user; public String execute() throws Exception { System.out.println(user); return SUCCESS; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }
第三種方式獲取參數:
模型驅動:
前端代碼:
<form action="${pageContext.request.contextPath}/Demo3Action"> 用戶名:<input type="text" name="name" /><br> 年齡:<input type="text" name="age" /><br> 生日:<input type="text" name="birthday" /><br> <input type="submit" value="提交" /> </form>
獲取參數:
package param; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import domain.User; public class Demo3Action extends ActionSupport implements ModelDriven<User> { private User user = new User(); public String execute() throws Exception { System.out.println(user); return SUCCESS; } @Override public User getModel() { return user; } }
第四種獲取參數方式:
集合類型封裝:
前端表單:
<form action="${pageContext.request.contextPath}/Demo4Action" method="post" > list:<input type="text" name="list" /><br> list:<input type="text" name="list[3]" /><br> map:<input type="text" name="map['haha']" /><br> <input type="submit" value="提交" /> </form>
獲取參數:
package param; import java.util.List; import java.util.Map; import com.opensymphony.xwork2.ActionSupport; //struts2 封裝集合類型參數 public class Demo4Action extends ActionSupport { //list private List<String> list; //Map private Map<String,String> map; public String execute() throws Exception { System.out.println("list:"+list); System.out.println("map:"+map); return SUCCESS; } public List<String> getList() { return list; } public void setList(List<String> list) { this.list = list; } public Map<String, String> getMap() { return map; } public void setMap(Map<String, String> map) { this.map = map; } }
這裡獲得的參數直接封裝到集合中