首页 > 学院 > 开发设计 > 正文

SSH学习之Struts2获取表单数据

2019-11-06 07:23:54
字体:
来源:转载
供稿:网友

回忆

之前看了看自己出现的代码问题,为什么会出现span标签?原来是因为我在添加代码的时候更改了代码的样式,这样的问题以后会在意的。在上一篇中介绍了SSH学习之Struts2中的Action,现在就介绍一下如何从前台获取表单数据。

为什么需要讲解

在学习Servlet阶段,我们知道是使用原始的Servlet语句通过HtttpServletRequest对象获取前台表单数据。但是如果我们需要获取的表单数据太多的话,使用request对象就显得代码多余。所以,Struts2的框架中提供了自己获取表单数据的方法:属性封装和模型驱动。目的是为了减少开发人员的代码量。

属性封装

属性封装主要的特点是提供get方法,不过最好也提供set方法。这是不需要我们自己写代码获取表单数据的,而是Struts2自身带有的一种机制。其底层代码也是原始的Servlet代码,只是Struts2将其进行了封装而已。注意name属性值和Action中的字段要相同,否则会抓取失败。前台:
<form action="${pageContext.request.contextPath }/testAttribute.action" method="post">    	<label>用户名:</label><input type="text" name="username"><br>    	<label>密码:</label><input type="passWord" name="password"><br>    	<input type="submit" value="提交"></form>后台:
public class TestAttributeAction extends ActionSupport {	PRivate String username;	private String password;	public String getUsername() {		return username;	}	public void setUsername(String username) {		this.username = username;	}	public String getPassword() {		return password;	}	public void setPassword(String password) {		this.password = password;	}	@Override	public String execute() throws Exception {		System.out.println(this.getUsername()+","+this.getPassword());		return NONE;	}}

模型驱动ModelDriven(推荐使用)

模型驱动说的也是封装的,他出现的主要目的就是为了减少属性封装中出现的问题,也就是减少Action的代码量,使分层更加清楚。最主要的特点是有一个纯实体类以及实现拦截器。具体步骤:实体类:

public class User implements Serializable {	private String username;	private String password;	public String getUsername() {		return username;	}	public void setUsername(String username) {		this.username = username;	}	public String getPassword() {		return password;	}	public void setPassword(String password) {		this.password = password;	}}Action类:必须要实现ModelDriven接口,必须要实例化实体类(new命令),必须返回user对象。

public class TestModelAction extends ActionSupport implements ModelDriven<User> {	private User user = new User();	@Override	public User getModel() {		// TODO Auto-generated method stub		return user;	}	@Override	public String execute() throws Exception {		System.out.println(user.getUsername() + "," + user.getPassword());		return SUCCESS;	}}

问题

但是在实际开发中,我们经常遇见确认密码、验证码等功能,那么这些功能怎么实现呢?这就需要验证的概念了。验证下一篇再笔记吧。

多余的话

这是我的理解,多多见谅奋斗
上一篇:1486: [HNOI2009]最小圈

下一篇:兰顿蚂蚁

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表