SSH學習一 STRUTS2 DTO
阿新 • • 發佈:2017-06-02
dto cti out ont system cep ide round support
那麽action的java類除了須要extends actionsupport還須要implements ModelDriven<T>
DTO在STRUTS2的應用是從頁面直接傳遞一個對象(比方自己寫的類)到Action
JSP僅僅能傳遞基本類型,STRUTS的DTO更方便
兩種用法:
一、假設表單中,各個屬性都聲明了實例的名字
<form action="w.action" method = "post"> 姓名:<input name="w.name" type="text" value="admin"/><br/> ID:<input name="w.id" type="password" value="hellow" ><br/> <input type="submit" value="add"/> </form>
按下面步驟:
Action的java文件裏須要實例化。如果實例名字為w。那麽相應的struts.xml中的Action名字也必須是w。當然也要與表單的w一樣
struts.xml
<action name="w" class="com.m2dto.action.WorkerAction" > <result name="success"> /ok.jsp </result> </action>
Action.java
public class WorkerAction extends ActionSupport { Worker w = new Worker(); public Worker getW() { return w; } public void setW(Worker w) { this.w = w; } @Override public String execute() throws Exception { System.out.println(w.getName()); System.out.println(w.getId()); return SUCCESS; } }
二、假設表單中。各個屬性沒有聲明實例的名字 。例如以下
<form action="u.action" method = "post"> User姓名:<input name="name" type="text" value="admin"/><br/> UserID:<input name="id" type="password" value="hellow" ><br/> <input type="submit" value="add"/> </form>
那麽action的java類除了須要extends actionsupport還須要implements ModelDriven<T>
T就是action須要接受的類的類型
除此之外,還須要:
(1)定義實例,並加上get set方法
(2)加上override getModel方法
例如以下樣例:
public class AddUser extends ActionSupport implements ModelDriven<Worker> { private Worker u = new Worker(); @Override public Worker getModel() { if(u == null){ u = new Worker(); } return u; } public Worker getU() { return u; } public void setU(Worker u) { this.u = u; } @Override public String execute() throws Exception { System.out.println("user" + u.getName()); System.out.println("user" + u.getId()); return SUCCESS; } }
SSH學習一 STRUTS2 DTO