SSH框架学习之struts2 ---- 2、 获取表单提交的数据

本文详细介绍了在Struts2框架中如何配置响应页面,包括全局和局部结果页面的设置,以及如何通过不同方法获取表单提交的数据。探讨了ActionContext、ServletActionContext的使用,以及通过接口注入、属性封装、模型驱动和表达式封装等方式处理表单数据的技巧。

本节重点
获取表单数据中的底层域对象写法
获取表单数据中的模型封装、表达式封装

1、响应页面配置

全局加局部,局部优先级大

1.1 全局结果页面

作用:多个action,返回的是用一个结果页面
配置:在package中!
只在当前package中生效

1.2 局部结果页面(普通写法)
 <package name="demo" extends="struts-default" namespace="/">
        <global-results>
            <result name="success">/quanju.jsp</result>
        </global-results>
        <action name="Login" class="com.lin.action.LoginAction">
            <result name="success">/login.jsp</result>
        </action>

        <action name="Regist" class="com.lin.action.RegistAction">
            <!--<result name="success">/regist.jsp</result>-->
        </action>
    </package>
1.3 result中的type属性

到页面中

  • 重定向 redirect
  • 转发 dispatcher

到其他action

  • chain:转发到action 一般不用
  • redirectAction: 重定向到action

2、在action获取表单提交的数据

先介绍比较底层的实现方法:
方法一、使用ActionContext类获取context对象在这里插入图片描述
方法二:使用ServletActionContext类获取域对象

在这里插入图片描述操作域对象
在这里插入图片描述

方法三: 使用接口的注入方式获取

在这里插入图片描述

struts2封装了的方法:
方法一:属性封装(用得少)

在action在定义数据成员(跟表单一一对应,且等于name的值,当表单发送数据过来,自动封装数据到数据成员中)
在这里插入图片描述

方法二:模型驱动封装(常用)

当表单发送数据过来时,自动把数据封装到特定的对象里面
步骤为
第一步:action实现ModelDriven
在这里插入图片描述
第二步:new一个实体类的对象
Customer customer = new Customer();
第三步:在getModel中返回该对象

@Override
	public Customer getModel() {
		return customer;
	}

第四步:就可以在方法里面由对象获取数据了

方法三:表达式封装

上面的模型驱动封装,只能把页面的数据封装到一个实例对象中,如果表单传的数据要求封装到多个对象,那么就无法达到目的了。表达式封装可以实现。

第一步:在action里声明实体类

第二部:生成实体类对象的get、set方法
在这里插入图片描述
第三步:在表单输入项的name属性值里面写表达式形式
在这里插入图片描述

3、获取表单数据的拓展

3.1、封装到list

在这里插入图片描述在这里插入图片描述

3.2 封装到map

在这里插入图片描述在这里插入图片描述

4、实战,客户关系系统中的添加客户

第一步: 通过模型驱动完成表单获取

在这里插入图片描述
第二步:使用hibernate插入新数据
在这里插入图片描述

第三步:发送请求至查询页面,展示新插入的数据

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值