`

Struts2封装获取表单数据方式

阅读更多

使用原始方式获取表单到实体类对象
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五种数据封装Demo

    Struts2支持五种数据封装方式: 1. **默认封装**:Struts2默认使用`@.struts2-convention-plugin`插件,根据Action方法的参数名自动匹配请求参数。 2. **使用ActionContext**:通过`ActionContext`对象获取请求...

    struts2数据封装源码

    这个"struts2数据封装源码"很可能是为了演示如何在Struts2框架下处理用户输入数据并进行封装的过程。在Struts2中,数据封装是通过Action类和模型对象(通常称为POJOs,Plain Old Java Objects)来实现的,这使得业务...

    Struts2表单验证

    Struts2是一个流行的Java web开发框架,其在处理用户表单数据时提供了强大的验证功能,确保输入的数据符合预期的格式和规则。本文将深入探讨Struts2的表单验证机制。 首先,Struts2的输入验证分为两种方式:手动...

    jQuery+json异步实现JSP和struts2之间的数据传递

    在JSP和Struts2之间,JSON用于封装和解封数据,使得前后端可以共享结构化的数据。 Struts2是基于MVC模式的Java Web框架,它的Action类是处理用户请求的核心,可以接收和处理JSON数据。为了使Struts2支持JSON,我们...

    struts1和struts2的区别

    - **Struts1**: 使用ActionForm来封装表单数据。ActionForm是一个JavaBean,负责验证和封装用户输入的数据。Struts1提供了丰富的标签库来辅助表单处理。 - **Struts2**: 直接使用Action来处理表单数据,不再需要...

    struts结合js的表单验证

    本文将详细介绍如何在 Struts2 框架中利用 JavaScript(JS)进行客户端表单验证,并结合实际代码示例来解释具体的实现方式。 #### 一、基本概念 Struts2 是一个基于 Java 的企业级应用框架,它支持多种技术栈,...

    马士兵Struts2笔记2013

    当用户提交表单时,Struts2框架会自动将请求参数绑定到Action的相应属性上,简化了数据的处理。 3. **Domain Model(实体模型)** Domain Model是一种设计模式,用于封装业务逻辑和数据。在Struts2中,你可以创建...

    留言板留言板struts2留言板struts2

    8. **表单处理**:Struts2提供了强大的表单处理能力,可以自动绑定请求参数到Action的属性,实现数据验证,并将错误信息回显到页面。 9. **异常处理**:Struts2通过全局异常映射(Global Exception Mapping)来统一...

    struts2批量提交数据

    在处理批量数据提交时,Struts2提供了一种高效的方法来管理并存储大量数据到数据库。本篇文章将深入探讨如何利用Struts2实现批量提交数据的功能。 ### 一、批量提交的概念 批量提交是指一次性处理多个数据记录,而...

    Struts 1.x中批量封装对象

    批量封装对象是Struts 1.x中处理大量数据时常用的一个技巧,它能有效地提高开发效率并减少代码量。 首先,让我们理解什么是批量封装。在处理表单提交或者数据导入等场景时,我们可能需要一次性处理多个相似的对象。...

    Struts2+Jquery+Ajax

    8. 实例演示:使用Struts2+Jquery+Ajax实现动态加载数据或表单验证 "struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必...

    Struts2表单标签

    总的来说,Struts2的表单标签不仅提供了一种简洁的方式来创建和管理表单,还集成了验证、数据绑定、错误处理等功能,极大地提高了开发效率和代码质量。通过深入理解和熟练运用这些标签,开发者可以更好地构建出健壮...

    struts2+jquery无刷新取后台数据

    例如,当用户需要获取某个列表数据时,前端可以通过Ajax向服务器发送请求,Struts2 Action接收到请求后,执行相应的查询操作,然后将结果集封装成JSON对象,通过Ajax响应返回给前端。前端接收到数据后,使用jQuery...

    Java Struts2 实现CRUD

    读取数据通常通过查询数据库实现,Struts2可以通过以下方式实现: 1. 创建一个Action类,包含获取数据的方法。 2. 配置Struts2的配置文件,指定Action的URL映射和结果页面。 3. 在Action中,根据需要从数据库检索...

    struts2实现在jsp页面对员工的增删改查操作

    使用Struts2的标签库可以方便地绑定数据和处理表单提交: ```jsp &lt;!-- addEmployee.jsp --&gt; 姓名"/&gt; 年龄"/&gt; 添加"/&gt; &lt;!-- listEmployees.jsp --&gt; &lt;td&gt;&lt;s:property value="name"/&gt; &lt;td&gt;&lt;s:...

    struts2_开始.doc

    Struts2 提供了两种主要的数据绑定方式来封装表单数据: 1. **基于字段封装**:当表单元素的 `name` 属性与 Action 类中的属性名称相匹配时,Struts2 自动将表单数据映射到对应的属性。例如,HTML 表单中有 `...

    struts2简单案例

    - **Action类**:在Struts2中,Action类是处理用户请求的中心组件,它封装了业务逻辑,并通过调用Service层来处理实际的业务操作。 - **配置文件**:`struts.xml`是Struts2的主要配置文件,用于定义Action、结果...

    Struts2和Struts1的区别,详细点,主要说说Struts2

    - **Struts1**采用ActionForm模式来封装用户输入的数据,它通常继承自ActionForm基类,并且可以通过JavaBean的属性进行数据绑定。 - **Struts2**虽然不再强制要求使用ActionForm模式,但仍然支持类似的功能,例如...

    struts2(包括增删改查的实现,及登录实现。jdbc连接。适合struts2初学者)

    Action类处理用户的请求,ActionForm对象封装表单数据,而JSP则展示数据或接收用户输入。 1. 创建(Create):当用户提交新数据时,Struts2会调用一个特定的Action类方法,该方法负责将表单数据转换为ActionForm...

    15年9月传智播客视频struts2

    - **Struts2提供了一组丰富的表单标签**,如`&lt;s:textfield&gt;`、`&lt;s:password&gt;`、`&lt;s:submit&gt;`等,这些标签可以自动绑定模型属性、验证数据、生成错误消息等。 #### 6. Struts2的文件上传与下载 - **文件上传**:...

Global site tag (gtag.js) - Google Analytics