使用原始方式获取表单到实体类对象
publicclassForm5DemoActionextendsActionSupport {@Overridepublic String execute() throws Exception {
HttpServletRequest request=ServletActionContext.getRequest();
String username=request.getParameter("username");
String password=request.getParameter("password");
String address=request.getParameter("address");
User user=new User();
user.setUsername(username);
user.setPassword(password);
user.setAddress(address);
System.out.println(user);
return NONE;
}
}
struts.xml中
<actionname="form5"class="cn.itcast.form.Form5DemoAction"></action>
<%@ page language="java" c>"text/html; charset=UTF-8"
pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><formaction="${pageContext.request.contextPath}/form5.action"method="post">
username:<inputtype="text"name="username"/><br/>
password:<inputtype="text"name="password"/><br/>
address:<inputtype="text"name="address"/><br/><inputtype="submit"value="提交"/></form></body></html>
填写jsp中的表单提交 控制台打印出如下效果
Struts2封装获取表单数据方式
属性封装
直接把表单提交属性封装到action的属性里面
实现步骤
在action成员变量位置 变量名称和表单输入项的name属性值一样
生成变量的set方法(set和get方法都写出来)
用属性封装获取表单数据到属性里面 不能把数据直接封装到实体类对象里面
publicclassData1DemoActionextendsActionSupport {private String username;
private String password;
private String address;
public String getUsername() {
return username;
}
publicvoidsetUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
publicvoidsetPassword(String password) {
this.password = password;
}
public String getAddress() {
return address;
}
publicvoidsetAddress(String address) {
this.address = address;
}
@Overridepublic String execute() throws Exception {
System.out.println(username+" "+password+" "+address);
return NONE;
}
}
struts.xml
<actionname="data1"class="cn.zhoushicanyin.date.Data1DemoAction"></action>
<%@ page language="java" c>"text/html; charset=UTF-8"
pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><formaction="${pageContext.request.contextPath}/data1.action"method="post">
username:<inputtype="text"name="username"/><br/>
password:<inputtype="text"name="password"/><br/>
address:<inputtype="text"name="address"/><br/><inputtype="submit"value="提交"/></form></body></html>
填写jsp中的表单提交 控制台打印出如下效果
Struts2封装获取表单数据方式
模型驱动封装
使用模型驱动方式 可以直接把表单数据封装到实体类对象里面
实现步骤:
action实现接口 ModelDriver
实现接口里面的方法 getModel方法 把创建对象返回
在action里面创建实体类对象
使用模型驱动和属性封装注意问题
在一个action中 获取表单数据可以属性封装 也可以使用模型驱动 但不能同时使用属性封装和模型驱动封装获取同一个表单数据 如果同时使用 只会执行模型驱动
publicclass Data2DemoAction extends ActionSupport implements ModelDriven<User>{
private User user=new User();
private String username;
private String password;
private String address;
public User getUser() {
return user;
}
publicvoidsetUser(User user) {
this.user = user;
}
public String getUsername() {
return username;
}
publicvoidsetUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
publicvoidsetPassword(String password) {
this.password = password;
}
public String getAddress() {
return address;
}
publicvoidsetAddress(String address) {
this.address = address;
}
@Override
public User getModel() {
return user;
}
@Override
public String execute() throws Exception {
System.out.println(user);//模型驱动封装和属性封装同时进行用时 只会执行模型驱动封装
System.out.println(username);
System.out.println(password);
System.out.println(address);
return NONE;
}
}
struts.xml
<actionname="data2"class="cn.zhoushicanyin.date.Data2DemoAction"></action>
<%@ page language="java" c>"text/html; charset=UTF-8"
pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><formaction="${pageContext.request.contextPath}/data2.action"method="post">
username:<inputtype="text"name="username"/><br/>
password:<inputtype="text"name="password"/><br/>
address:<inputtype="text"name="address"/><br/><inputtype="submit"value="提交"/></form></body></html>
填写jsp中的表单提交 控制台打印出如下效果
Struts2封装获取表单数据方式
表达式封装
实现过程
在action里面声明实体类
生成实体类变量的set和get方法
在表单输入项的name属性值里面写表达式形式
把表达式封装归类到属性封装里面
publicclassData3DemoActionextendsActionSupport{private User User;
private Book book;
public Book getBook() {
return book;
}
publicvoidsetBook(Book book) {
this.book = book;
}
public User getUser() {
return User;
}
publicvoidsetUser(User user) {
User = user;
}
@Overridepublic String execute() throws Exception {
System.out.println(book.getNbook());
System.out.println(User);
return NONE;
}
}
分享到:
相关推荐
Struts2支持五种数据封装方式: 1. **默认封装**:Struts2默认使用`@.struts2-convention-plugin`插件,根据Action方法的参数名自动匹配请求参数。 2. **使用ActionContext**:通过`ActionContext`对象获取请求...
这个"struts2数据封装源码"很可能是为了演示如何在Struts2框架下处理用户输入数据并进行封装的过程。在Struts2中,数据封装是通过Action类和模型对象(通常称为POJOs,Plain Old Java Objects)来实现的,这使得业务...
Struts2是一个流行的Java web开发框架,其在处理用户表单数据时提供了强大的验证功能,确保输入的数据符合预期的格式和规则。本文将深入探讨Struts2的表单验证机制。 首先,Struts2的输入验证分为两种方式:手动...
在JSP和Struts2之间,JSON用于封装和解封数据,使得前后端可以共享结构化的数据。 Struts2是基于MVC模式的Java Web框架,它的Action类是处理用户请求的核心,可以接收和处理JSON数据。为了使Struts2支持JSON,我们...
- **Struts1**: 使用ActionForm来封装表单数据。ActionForm是一个JavaBean,负责验证和封装用户输入的数据。Struts1提供了丰富的标签库来辅助表单处理。 - **Struts2**: 直接使用Action来处理表单数据,不再需要...
本文将详细介绍如何在 Struts2 框架中利用 JavaScript(JS)进行客户端表单验证,并结合实际代码示例来解释具体的实现方式。 #### 一、基本概念 Struts2 是一个基于 Java 的企业级应用框架,它支持多种技术栈,...
当用户提交表单时,Struts2框架会自动将请求参数绑定到Action的相应属性上,简化了数据的处理。 3. **Domain Model(实体模型)** Domain Model是一种设计模式,用于封装业务逻辑和数据。在Struts2中,你可以创建...
8. **表单处理**:Struts2提供了强大的表单处理能力,可以自动绑定请求参数到Action的属性,实现数据验证,并将错误信息回显到页面。 9. **异常处理**:Struts2通过全局异常映射(Global Exception Mapping)来统一...
在处理批量数据提交时,Struts2提供了一种高效的方法来管理并存储大量数据到数据库。本篇文章将深入探讨如何利用Struts2实现批量提交数据的功能。 ### 一、批量提交的概念 批量提交是指一次性处理多个数据记录,而...
批量封装对象是Struts 1.x中处理大量数据时常用的一个技巧,它能有效地提高开发效率并减少代码量。 首先,让我们理解什么是批量封装。在处理表单提交或者数据导入等场景时,我们可能需要一次性处理多个相似的对象。...
8. 实例演示:使用Struts2+Jquery+Ajax实现动态加载数据或表单验证 "struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必...
总的来说,Struts2的表单标签不仅提供了一种简洁的方式来创建和管理表单,还集成了验证、数据绑定、错误处理等功能,极大地提高了开发效率和代码质量。通过深入理解和熟练运用这些标签,开发者可以更好地构建出健壮...
例如,当用户需要获取某个列表数据时,前端可以通过Ajax向服务器发送请求,Struts2 Action接收到请求后,执行相应的查询操作,然后将结果集封装成JSON对象,通过Ajax响应返回给前端。前端接收到数据后,使用jQuery...
读取数据通常通过查询数据库实现,Struts2可以通过以下方式实现: 1. 创建一个Action类,包含获取数据的方法。 2. 配置Struts2的配置文件,指定Action的URL映射和结果页面。 3. 在Action中,根据需要从数据库检索...
使用Struts2的标签库可以方便地绑定数据和处理表单提交: ```jsp <!-- addEmployee.jsp --> 姓名"/> 年龄"/> 添加"/> <!-- listEmployees.jsp --> <td><s:property value="name"/> <td><s:...
Struts2 提供了两种主要的数据绑定方式来封装表单数据: 1. **基于字段封装**:当表单元素的 `name` 属性与 Action 类中的属性名称相匹配时,Struts2 自动将表单数据映射到对应的属性。例如,HTML 表单中有 `...
- **Action类**:在Struts2中,Action类是处理用户请求的中心组件,它封装了业务逻辑,并通过调用Service层来处理实际的业务操作。 - **配置文件**:`struts.xml`是Struts2的主要配置文件,用于定义Action、结果...
- **Struts1**采用ActionForm模式来封装用户输入的数据,它通常继承自ActionForm基类,并且可以通过JavaBean的属性进行数据绑定。 - **Struts2**虽然不再强制要求使用ActionForm模式,但仍然支持类似的功能,例如...
Action类处理用户的请求,ActionForm对象封装表单数据,而JSP则展示数据或接收用户输入。 1. 创建(Create):当用户提交新数据时,Struts2会调用一个特定的Action类方法,该方法负责将表单数据转换为ActionForm...
- **Struts2提供了一组丰富的表单标签**,如`<s:textfield>`、`<s:password>`、`<s:submit>`等,这些标签可以自动绑定模型属性、验证数据、生成错误消息等。 #### 6. Struts2的文件上传与下载 - **文件上传**:...