多个配置文件|动态方法调用|请求参数接收

应用指定多个配置文件
在大部分应用里,随着应用规模的增加,系统中Action的数量也会大量增加,导致struts.xml配置文件变得非常臃肿。为了避免这种情况,提高struts.xml文件的可读性,我们可以将一个struts.xml配置文件分解成多个配置文件,然后在struts.xml中包含其它配置文件, 主配置文件中struts结点下
<include file="struts-user.xml"/>
<include file="struts-order.xml"/>
动态方法调用和使用通配符定义action
Struts2给我们提供两种方法:
1) 动态方法实现 :要访问的action的后加!方法名【不推荐使用】把一个常量的值设为false就是不使用
2) 使用通配符定义Action:action的名字_*_*……,method=”{1}”等等
请求参数接收
一:在Action类中定义与请求参数同名的属性,struts2便能自动接收请求参数并赋给名属性。【struts 2中不再用form来接收参数,而是直接用action里的属性来接收值/在action 里定义与请求参数名相同就可以了】
Eg:http://localhost:8080/struts2_004/test/testId?id=4&name=tom
1:通过复合类型来接收参数【后面定义一个Person对象,action里定义Person对象及getter/setter方法】,在form表单里加setter方法中的Person,eg:person.id,接收页面使用getter方法里的,person.id;
2:用form表单提交数据的时候不用namespace里的/
3:写一个类把一个实体的属性包含起来,不要写在action里, 有利用我们阅读action
【问题:内部怎么实现的?】
回答:当struts2拦截器接收到请求参数,根据请求参数名称就可访问对应的属性, person为null的话,struts2 根据反射机制调用Person构造方法【实例化后】,再 通过反射给属性注入值,【必须有默认无参的构造器的】
4:注意 struts 2.1.6有一个小bug,接收中文请求参数再现乱码问题,解决之道:定一 个过滤器。

猜你喜欢

转载自houshangxiao.iteye.com/blog/1053678
今日推荐