属性驱动
概述
通過屬性(模型)驅動,可以使得Action獲取到用戶表單所提交的數據。
?
【屬性驅動】
1.概述
所謂屬性驅動是指使用類的屬性(成員字段)來接收用戶提交的數據。
?
2.實現步驟
- 第一步:創建Action類
- 第二步:添加對應的屬性(成員字段)并生成get/set訪問器
- 第三步:編寫請求處理方法
- 第四步:配置Action
?
3.示例1?基本類型作為屬性
[View]
1 <form action="user/add.action" method="post"> 2 <table> 3 <tr> 4 <th>姓名:</th> 5 <td> 6 <input type="text" name="userName" /> 7 </td> 8 </tr> 9 <tr> 10 <th>帳號:</th> 11 <td> 12 <input type="text" name="account" /> 13 </td> 14 </tr> 15 <tr> 16 <th>密碼:</th> 17 <td> 18 <input type="text" name="pwd" /> 19 </td> 20 </tr> 21 <tr> 22 <td> 23 <input type="submit" value="保存" /> 24 </td> 25 </tr> 26 </table> 27 </form>?
[Action類]
1 /** 2 * 屬性驅動方式獲取表單數據 3 * 4 * 將表單提交的數據以Action屬性(成員字段)的形式進接收 5 * @author Terry 6 * 7 */ 8 public class UserAction implements Action{ 9 private String userName; 10 private String account; 11 private String pwd; 12 13 /** 14 * 請求處理方法 15 */ 16 @Override 17 public String execute(){ 18 System.out.println("userName = " + userName); 19 System.out.println("account = " + account); 20 System.out.println("pwd = " + pwd); 21 System.out.println("==========================================\n"); 22 return "success"; 23 } 24 25 //get/set訪問器 26 }?
[配置文件]
1 <package name="UserAction" extends="struts-default" namespace="/user"> 2 <action name="add" class="cn.hl.action.UserAction"> 3 <result>/index.jsp</result> 4 </action> 5 </package>?
[執行結果]
?
4.示例2?引用類型作為屬性
[View]
1 <form action="user/add.action" method="post"> 2 <table> 3 <tr> 4 <th>姓名:</th> 5 <td> 6 <input type="text" name="user.userName" /> 7 </td> 8 </tr> 9 <tr> 10 <th>帳號:</th> 11 <td> 12 <input type="text" name=" user.account" /> 13 </td> 14 </tr> 15 <tr> 16 <th>密碼:</th> 17 <td> 18 <input type="text" name=" user.pwd" /> 19 </td> 20 </tr> 21 <tr> 22 <td> 23 <input type="submit" value="保存" /> 24 </td> 25 </tr> 26 </table> 27 </form>?
[Javabean]
1 public class User { 2 private String userName; 3 private String account; 4 private String pwd; 5 6 public User() { 7 // TODO Auto-generated constructor stub 8 } 9 }?
[Action類]
1 public class UserAction2 implements Action{ 2 private User user ; 3 4 /** 5 * 請求處理方法 6 */ 7 @Override 8 public String execute(){ 9 System.out.println(user); 10 System.out.println("==========================================\n"); 11 return "success"; 12 } 13 14 public User getUser() { 15 return user; 16 } 17 18 public void setUser(User user) { 19 this.user = user; 20 } 21 22 }?
[配置文件]
1 <action name="add2" class="cn.hl.action.UserAction2"> 2 <result>/update2.jsp</result> 3 </action>?
[執行結果]
?
?
【注意事項】
- 基本類型作為屬性時,屬性名(成員字段名)必須和表單中name值一致
- 屬性必須提供get/set訪問器。否則將無法獲取到數據值
- 引用類型作為成員屬性時,不需要進行實例化
?
轉載于:https://www.cnblogs.com/zhzcode/p/9897152.html
總結
- 上一篇: mysql 下 计算 两点 经纬度 之间
- 下一篇: 面试无忧之Zookeeper总结心得