struts学习笔记3接收web前端前台传来的数据
来源:互联网 发布:上汽集团有限公司知乎 编辑:程序博客网 时间:2024/05/21 10:13
这个例子主要是运用了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 。
<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>
- struts学习笔记3接收web前端前台传来的数据
- struts2接收前台传来的参数有3种方法
- annotation-@RequestBody-接收前端传来的json
- SpringMVC后台接收前台传来数据的三种简单方式
- Spring Mvc 如何配置 接收前台传来的时间变量
- Sping MVC 接收前台传来的集合方法
- spring mvc 接收前台传来的json对象(转)
- JSON—接收服务器端传来的数据
- servlet接收不到JSP传来的数据servlet接收不到JSP传来的数据
- 后台struts2如何接收前端传来的json数组
- ashx一般处理文件接收前端传来的参数
- springmvc自动转前台传来的时间数据
- [意译]Android Developer - 接收别的APP传来的数据
- 数据接收接口项目(c#接收方接收url传来的数据)
- springmvc接收前台(亦可是ajax)传来的数组,复杂对象数组等图文详解
- springmvc接收前台(亦可是ajax)传来的数组,复杂对象数组等图文详解
- java解析前端传来的json数据位javabean
- 使用PHP接受前端传来的json数据
- 手机操作系统开源软件
- 解决mybatis在oracle中null的问题
- android: RoundCornerImageView 图片视图 倒圆角
- struts中redirect与dispatch的区别
- 陆首群: 再谈“看好MeeGo是匹黑马”
- struts学习笔记3接收web前端前台传来的数据
- 解决 GridView 多行表头显示 的方法
- python shell
- Libevent(二)
- MFC中定义全局变量和全局函数的方法
- sql的分页函数
- Linux操作系统进程间通信概述
- 笔记地球
- Win7可用的笔记本电池校正软件( 64、32位)