struts 模型驅動

來源:互聯網
上載者:User

標籤:package   username   處理   ring   input   context   work   com   使用者名稱   

情景: 有一個用來處理使用者的UserAction 類, 該動作類實現了 ModelDriven 介面. 當使用者觸發UserAction 動作時, ModelDriven 攔截器將調用相關UserAction 對象的 getModel() 方法, 並把返回的模型(User執行個體)壓入到 ValueStack 棧. 接下來 Parameters 攔截器將把表單欄位對應到 ValueStack 棧的棧頂對象的各個屬性中. 因為此時 ValueStack 棧的棧頂元素是剛被壓入的模型對象, 所以該模型將被填充. 如果某個欄位在模型裡沒有匹配的屬性, Param 攔截器將嘗試 ValueStack 棧中的下一個對象.

一個模型類必須有一個不帶任何參數的構造器.

寫法 例子:

前端代碼

1 <form action="${pageContext.request.contextPath }/user_add" name="form_">2         使用者名稱:<input type="text" name="user.userName" />  <br>3             密碼:<input type="text" name="user.pwd" /><br/>4             <input type="submit" value="提交">5     </form>

後台代碼

 1 //----------------user----------實體類------------------ 2 package test.a_usertest; 3 public class User { 4     private String userName; 5     private String pwd; 6     public String getUserName() { 7         return userName; 8     } 9     public void setUserName(String userName) {10         this.userName = userName;11     }12     public String getPwd() {13         return pwd;14     }15     public void setPwd(String pwd) {16         this.pwd = pwd;17     }18 }19 //--------action---------------------------------20 package test.a_usertest;21 22 import java.util.ArrayList;23 import java.util.List;24 25 import com.opensymphony.xwork2.ActionSupport;26 import com.opensymphony.xwork2.ModelDriven;27 28 public class UserAction extends ActionSupport implements ModelDriven<User>{29 30     private User user = new User();31     public User getUser() {32         return user;33     }34     public void setUser(User user) {35         this.user = user;36     }37     public User getModel() {38         return this.user;39     }40     public String add(){41         List<Object> list = new ArrayList<Object>();42         list.add(user);//打個斷點在這裡可以發現,此時user.userName 、user.pwd的值為前端傳過來的值,也就是頁面中的this.user對象自動被封裝了43         return SUCCESS;44     }45 }

 

struts 模型驅動

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.