Struts2框架的数据封装一之属性封装(属性封装的第二种方式:封装成javaBean)

Struts2中提供了两类数据封装的方式?
   第一种方式:属性驱动(有两种方式:一个对属性,另外一个是将参数封装到javaBean中)
  B. 在页面上,使用OGNL表达式进行数据封装。(将参数封装到javaBean中) 
     * 在页面中使用OGNL表达式进行数据的封装,就可以直接把属性封装到某一个JavaBean的对象中。
         * 在页面中定义一个JavaBean,并且提供set方法:例如:private User user;
         * 页面中的编写发生了变化,需要使用OGNL的方式,表单中的写法:<input type="text" name="user.username">
         * 注意:只提供一个set方法还不够,必须还需要提供user属性的get和set方法!!!
              > 先调用get方法,判断一下是否有user对象的实例对象,如果没有,调用set方法把拦截器创建的对象注入进来,
    例:    1.书写javaBean类User:
package com.huida.domain;

public class User {

    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 toString() {
        return "User [username=" + username + ", password=" + password + "]";
    }

}

    2.写对应的action类,Regist2Action:

package com.huida.action1;

import com.huida.domain.User;
import com.opensymphony.xwork2.ActionSupport;

public class Regist2Action extends ActionSupport{
//属性驱动不需要手动实例化
    private User user;
    //提供set和get方法
    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    @Override
    public String execute() throws Exception {
        System.out.println(user);
        return NONE;
    }
}

    3.对action进行配置:

<package name="demo" namespace="/" extends="struts-default">
        <action name="regist2Action" class="com.huida.action1.Regist2Action"></action>
    </package>

    4.在index.jsp中写对应的表单,这里注意表单的中name对应值的变化,应该写为user.username:

<h3>属性驱动封装数据,封装到javaVean中</h3>
    <form action="${ pageContext.request.contextPath }/regist2Action.action" method="post">
        姓名<input type="text" name="user.username"/><br/>
        密码<input type="text" name="user.password"/><br/>
        <input type="submit" value="注册">

    </form>

    启动服务器,执行index.jsp页面,然后输入姓名和密码,点击注册,在控制台上输出如下内容表示封装数据成功:

    

       

原文地址:https://www.cnblogs.com/wyhluckdog/p/10105189.html

时间: 2024-08-02 10:06:15

Struts2框架的数据封装一之属性封装(属性封装的第二种方式:封装成javaBean)的相关文章

《连载 | 物联网框架ServerSuperIO教程》- 10持续传输大块数据流的两种方式(如:文件)

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架ServerSuperIO教程>2.服务实例的配置参数说明 <连载 | 物联网框架ServerSuperIO教程>- 3.设备驱动介绍 <连载 | 物联网框架ServerSuperIO教程>-4.如开发一套设备驱动,同时支持串口和网络通讯. <连载 | 物联网框架ServerSupe

js最基础知识回顾2(函数传参,操作属性的第二种方式,提取行间事件,操作一组元素,this,焦点问题和鼠标按下抬起,选项卡)

一.函数传参     1.函数传参:参数就是占位符----函数里定不下来的东西 a. var a1=function(){ alert(123); }; function a(f){ // 相当于 f=a1 f(); }; a(a1); b.  function skip(skipPath){  //换肤 var oLink1 = document.getElementById('link1'); oLink1.href=skipPath; } c.   function setStyle(na

通过属性 Cesium的FBO主要支持两种方式

角色其实就是一类权限的分组,所以给用户分配角色其实也是在给用户分配权限.在oracle中有三个比较常用的角色.对于一般不是很严格的系统可以授予开发用户CONNECT.RESOURCE角色权限即可. 其中--logdir命令行参数指定的路径必须跟SummaryWriter的logdir参数值保持一致,TensorBoard才能够正确读取到Tensorflow的事件文件. 使用RTTI技术可以避免类型访问错误而程序异常的情况,但是这样做有点不优雅,每增加一个类型,都需要修改if-else结构,并且使

《连载 | 物联网框架ServerSuperIO教程》- 10.持续传输大块数据流的两种方式(如:文件)

感谢唯笑志在分享 原博主原地址:http://www.cnblogs.com/lsjwq/ 目       录 10.持续传输大块数据流的两种方式(如:文件)... 2 10.1        概述... 2 10.2        大块数据流的两种传输方式... 2 10.2.1       协议数据包的方式... 2 10.2.2       请求长度.确认的方式... 3 10.3        实现持续传输大块数据... 4 10.3.1       设计请求发送数据协议... 4 10

如何用jquery+ajax写省市区的三级联动?(封装和不封装两种方式)-----2017-05-14

首先,要实现如下图效果, 1.要理清思路: 先做出三个下拉菜单----根据第一个下拉菜单的value值获取第二个下拉列表的内容,第三个同理. 2.用到的数据库表:Chinastates表 规律:根据国家级(中国)的areacode查询省级(如:北京) ; 根据省级的areacode查询市级(如:北京市辖):根据市级的areacode查询区级(如东城区) 第一种方式:没有用到封装,数据读取较慢,可以看看原理,这样在第二种方式封装时就容易多了. 代码如下: <!DOCTYPE html> <

7.Struts2框架封装数据

Struts2框架提供了很强大的数据封装的功能,不再需要使用Servlet的API完成手动封装了!! 第一种方式:属性驱动 > 提供对应属性的set方法进行数据的封装.--经常使用 * 表单的哪些属性需要封装数据,那么在对应的Action类中提供该属性的set方法即可. * 表单中的数据提交,最终找到Action类中的setXxx的方法,最后赋值给全局变量. * 注意0:Struts2的框架采用的拦截器完成数据的封装. * 注意1:这种方式不是特别好:因为属性特别多,提供特别多的set方法,而且

struts2获取表单数据之 属性封装 模型驱动 表达式封装 对象封装到list集合 对象封装到map集合 五种方便的封装方式

一.属性封装 属性封装是在action里面设定属性值,属性名字一定要和表单中的name一样,action中extends ActionSupport demo1.jsp: <body> This is my login JSP page. <br> <form action="demo1.action" method="post" > username<input type="text" name=&qu

Struts框架的数据封装二之模型驱动方式

Struts2中提供了两类数据封装的方式? * 第二种方式:模型驱动 > 使用模型驱动的方式,也可以把表单中的数据直接封装到一个JavaBean的对象中,并且表单的写法和之前的写法没有区别! > 编写的页面不需要任何变化,正常编写name属性的值 > 模型驱动的编写步骤: * 手动实例化JavaBean,即:private User user = new User(); * 必须实现ModelDriven<T>接口,实现getModel()的方法,在getModel()方法中

struts2框架学习笔记2:配置详解

核心配置文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <