struts学习笔记3接收web前端前台传来的数据
2011-10-10 09:44
513 查看
这个例子主要是运用了DomainModule的方式进行的操作。
domainmodule 中文解释:域模型,domainmodul接收参数的方式就是,在action中设一个module对象(即实体对象,还不明白就看下面的举例)
例如,一个bbs系统,实现用户注册模块,那么后台module中
我们就会相应的建立一个 User类,这个user类就是我们前面说过的module,
分析下为什么要用DomainModule来接收参数,我们从前台向后台的action中传递参数,action做的处理无非是紧接着再把这个参数传递给对应的module,那么假如我们的module有100个变量(呵呵,我说的是假如),那么我们用第一种方法接收参数时就要在action中设置100个变量,但如果我们用domainmodule的话就简单的多,说了这么多,还没讲到怎么用呵呵,切入正题:
eg:有一个用户登录系统,前台需要向后台传递一个user的name
和 password
两个属性,
那么我们可以这么处理,首先在相应的action
设一个private User user;
变量(假如我们已经有了User这个Module了),好那么前台传递参数的时候可以这么来写,
action?user.name=chance&user.password=123
注意:我们依然需要继续给user设置 set get方法
另外需要注意的是,在action中设置的变量
无论是基本类型,还是引用类型,我们只需要声明,但不需要定义(简单的说,就是我们不需要去 new
一个变量)
new的过程
由struts来帮我们完成
下面我们在来考虑一个问题,还拿上面的用户登录系统来举例,通常用户登录的时候
除了用户名,密码,还会填写一个
确认密码(其实这个工作完全可以交给客户端的js来处理,这里只是为了说明问题),但是在 User Module抽象封装的过程它是不会有
confimPassword这一项的,这样我们就不能用domainModule来解决这个问题,怎么办?
解决方法就是引入 DTO(又交 do,或vo)data
transform object,它的工作就两点:接收一下,传递一下;
接收一下:前台传过来的user对象,我们不直接传递给usermodule
而是传递给 dto对象,例如userDto(它里面会有一个confimPassword变量)
传递一下:dto接收来参数后
进过一番数据处理,确认密码输入正确那么就会
把
必要的参数变量传递给 usermodule 。
这一段,注意的是表单里的action,和name属性。
注意user的get方法
domainmodule 中文解释:域模型,domainmodul接收参数的方式就是,在action中设一个module对象(即实体对象,还不明白就看下面的举例)
例如,一个bbs系统,实现用户注册模块,那么后台module中
我们就会相应的建立一个 User类,这个user类就是我们前面说过的module,
分析下为什么要用DomainModule来接收参数,我们从前台向后台的action中传递参数,action做的处理无非是紧接着再把这个参数传递给对应的module,那么假如我们的module有100个变量(呵呵,我说的是假如),那么我们用第一种方法接收参数时就要在action中设置100个变量,但如果我们用domainmodule的话就简单的多,说了这么多,还没讲到怎么用呵呵,切入正题:
eg:有一个用户登录系统,前台需要向后台传递一个user的name
和 password
两个属性,
那么我们可以这么处理,首先在相应的action
设一个private User user;
变量(假如我们已经有了User这个Module了),好那么前台传递参数的时候可以这么来写,
action?user.name=chance&user.password=123
注意:我们依然需要继续给user设置 set get方法
另外需要注意的是,在action中设置的变量
无论是基本类型,还是引用类型,我们只需要声明,但不需要定义(简单的说,就是我们不需要去 new
一个变量)
new的过程
由struts来帮我们完成
下面我们在来考虑一个问题,还拿上面的用户登录系统来举例,通常用户登录的时候
除了用户名,密码,还会填写一个
确认密码(其实这个工作完全可以交给客户端的js来处理,这里只是为了说明问题),但是在 User Module抽象封装的过程它是不会有
confimPassword这一项的,这样我们就不能用domainModule来解决这个问题,怎么办?
解决方法就是引入 DTO(又交 do,或vo)data
transform object,它的工作就两点:接收一下,传递一下;
接收一下:前台传过来的user对象,我们不直接传递给usermodule
而是传递给 dto对象,例如userDto(它里面会有一个confimPassword变量)
传递一下:dto接收来参数后
进过一番数据处理,确认密码输入正确那么就会
把
必要的参数变量传递给 usermodule 。
<form action="reg/register!reg" method="post" name="myform"> 姓名:<input type="text" name="user.name"/><br/> 密码:<input type="password" name="user.password"/><br/> 性别:<input type="radio" name="user.sex" value="male">男<input type="radio" name="user.sex" value="fmale">女<br/> 邮箱:<input type="text" name="user.mail"><br/><br/> <input type="reset"/> <input type="submit"> </form>
这一段,注意的是表单里的action,和name属性。
package cn.qin.Actions; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import cn.qin.Models.*; public class registerAction extends ActionSupport { private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public String reg(){ System.out.println("system.out:"+"name"+user.getName()+"密码"+user.getPassword()+"性别"+user.getSex()+"邮箱"+user.getName()); return "success"; } public User getModel() { return user; } }
注意user的get方法
package cn.qin.Models; public class User { private String name; private String password; private String mail; private String sex; public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getMail() { return mail; } public void setMail(String mail) { this.mail = mail; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }user的属性,即module。struts的配置如下
<constant name="struts.devMode" value="true" /> <package name="register" namespace="/reg" extends="struts-default"> <action name="register" class="cn.qin.Actions.registerAction" > <result>/regSuccess.jsp</result> </action> </package>
相关文章推荐
- 【Web前端学习笔记】Javascript_01_变量,数据类型,类型转换
- web前台工作笔记(时间戳、js中clone的使用、js中动态填充数据注意事项、前台查错方法的学习)
- 【Web前端学习笔记】Javascript_02_运算符,控制语句,常用语句,函数定义
- Web前端学习笔记(1)-Html5与Html4的区别
- 黑马程序员05-Web前端学习笔记
- 【Web前端学习笔记】CSS3_常用属性,选择器,盒子模型
- Socket网络编程学习笔记(5):发送和接收实体类数据
- 大数据学习笔记之十 云计算、Web服务、网格计算的联系
- Web前端学习笔记(3)-html5新增表单元素
- JSP实现数据传递(web基础学习笔记三)
- springMVC学习笔记-后端给前端·传递数据
- 学习笔记之开发相关概念(1)--前端后端前台后台
- web前端学习笔记---scrollWidth,clientWidth,offsetWidth的区别
- [Nodejs]初探nodejs学习笔记- 如何使用nodejs接收get/post 数据(参数)
- web前端学习中……写个笔记。
- Web前端学习笔记(二)——CSS中的选择符
- TinyOS学习笔记8-简单发送接收数据
- Web前端学习笔记:Bootstrap框架
- web 前端学习笔记
- Springmvc第一讲学习笔记,数据接收与乱码解决