Struts2_2_解决配置文件冗余_动作类对象数据封装_数据类型转换_表单数据信息提示

本文详细介绍了Struts2中如何解决struts.xml配置冗余,实现请求数据到对象的封装,包括静态参数和动态参数封装(模型驱动)。接着讲解了数据类型转换,包括自定义类型转换器的创建和注册,并讨论了转换失败后的处理策略。此外,还探讨了Struts2的表单回显数据处理和信息提示,以及服务端验证,包括自定义表单数据提示和验证规则的XML配置方式。
摘要由CSDN通过智能技术生成

Struts2第二天学习

解决struts.xml文件的冗余

将所有的配置文件放在一份struts.xml将会导致, 文件繁杂且容易出错, 将有如下的解决方案:

分文件编写Struts2的配置文件:
	对于具有类似功能的action就可以放入不同对应的xml文件中, 最后使用struts标签中的<include file="user.xml"></include>处理
	例如:
		1. struts.xml
		<struts>
			<constant name="struts.devMode" value="true"></constant>
			<include file="A.xml"></include>
			<include file="B.xml"></include>
		</struts>
		2. A.xml
		<struts>
			<package name="A" extends="struts-default">
				<action name="addA">
					<result>/success.jsp</result>
				</action>
			</package>	
		</struts>
		3. B.xml
		<struts>
			<package name="B" extends="struts-default">
				<action name="addB">
					<result>/success.jsp</result>
				</action>
			</package>	
		</struts>

封装请求数据到对象中

  • 静态参数封装: 使用struts.xml配置param参数, 调用动作类的setXXX方法做数据注入,默认编码utf-8, 不会出现乱码问题
例: struts.xml配置
		<struts>
			<package name="user" extends="struts-default">
				<action name="addUser" class="com.action.UserAction" method="saveUser">
					<param name="username">A</param>
					<param name="age">18</param>
				</action>
			</package>	
		</struts>
		在动作类中的配置:
		public class UserAction extends ActionSupport{
			private String username;
			private int age;
			public String getUsername(){
				return username;
			}
			public void setUsername(String username){
				this.username = username;
			}
			public int getAge(){
			return age;
			}
			public int setAge(){
				this.age = age;
			}
			public String saveUser(){ //action方法
				return null;	
			}	
		}
当访问index.jsp中addUser操作的时候, struts.xml触发saveUser的action, 将username, age中参数通过UserAction中的set方法做注入操作
整个注入的过程中, 首先会自动为UserAction生成一个user对象, 将username, age通过set方式进行赋值
Struts2是通过staticParams的拦截器做注入操作, 这里注意必须保证, 注入的param标签中的name必须与Action类中的属性同名
在param中的age参数18是作为字符串出现的, 当使用set操作的时候, 字符串自动转换为数字
  • 动态参数封装: 就是对用户提交的表单数据封装到实体模型中
当用户使用表单提交数据的时候, 在Servlet中, 直接使用request.getParameter("参数名")处理
而在Struts2中, 系统默认将表单数据一一通过set操作封装到Action类的属性中
在struts.xml不需要做参数配置, 例如:
			<action name="addUser" class="com.action.UserAction" method="saveUser">
			&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值