SSH学习一 STRUTS2 DTO

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;}@Overridepublic 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还需要implementsModelDriven<T>

T就是action需要接受的类的类型

除此之外,还需要:(1)定义实例,并加上get set方法

(2)加上override getModel方法

如下例子:

public class AddUser extends ActionSupport implements ModelDriven<Worker> {private Worker u = new Worker();@Overridepublic Worker getModel() {if(u == null){u = new Worker();}return u;}public Worker getU() {return u;}public void setU(Worker u) {this.u = u;}@Overridepublic String execute() throws Exception {System.out.println("user" + u.getName());System.out.println("user" + u.getId());return SUCCESS;}}

版权声明:本文为博主原创文章,未经博主允许不得转载。

或许是某个未开发的荒凉小岛,或许是某座闻名遐迩的文化古城。

SSH学习一 STRUTS2 DTO

相关文章:

你感兴趣的文章:

标签云: