Struts2框架第二讲

一、细说常量配置

A)配置:常量可以在struts.xmlstruts.properties中配置,建议在struts.xml中配置,两种配置方式如下:

struts.xml文件中配置常量

<struts>

    <constant name="struts.action.extension" value="do"/>

</struts>

struts.properties中配置常量

struts.action.extension=do

B)Struts2文件加载顺序:

struts-default.xml struts-plugin.xml struts.xml struts.properties Web.xml

如果在多个文件中配置了同一个常量,则后一个文件中配置的常量值会覆盖前面文件中配置的常量值.

C)常用常量简介:

struts.i18n.encoding 指定默认编码集,作用于HttpServletRequestsetCharacterEncoding方法 和freemarker velocity的输出

Struts.action.extension 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。 如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开

struts.serve.static.browserCache 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭

Struts.configuration.xml.reload struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开

struts.devMode 开发模式下使用,这样可以打印出更详细的错误信息

struts.objectFactory spring集成时,指定由spring负责action对象的创建

struts.enable.DynamicMethodInvocation 该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false

struts.multipart.maxSize 上传文件的大小限制 默认是2M

二、在大部分应用里,随着应用规模的增加,系统中Action的数量也会大量增加,导致struts.xml配置文件变得非常臃肿。为了避免struts.xml文件过于庞大、臃肿,提高struts.xml文件的可读性,我们可以将一个struts.xml配置文件分解成多个配置文件

<include file="struts-user.xml"/>

<include file="struts-order.xml"/>

三、动态调用方法,指定一个action则可以调用不同的方法

首先我们需要在action标签中设置name的时候用*号代表占位符

<action name="helloworld_*" class="cn.csdn.action.HelloWorldAction" method="{1}">

<result name="success">/WEB-INF/page/hello.jsp</result>

</action>

这样我们就可以用helloworld!add.action访问 或者用hellworld_add.action访问add的方法

四、接受请求参数

a) 接受基本的参数类型:Struts2内置的类型转换来自动转换

b) 复合类型接受请求参数

在其中定义实体类user的实例对象左右action的属性并且指定了set方法

那就可以在form表单中使用user.id  user.name来指定name属性。Struts2就可以将表单中的值赋给user这个对象并且封装

四、类型转换

a) 类型转换器实现

使用这种方式也可以使用java类的封装,一般分为三步来实现

1、添加视图界面。 在input中的name属性指定成user即可

2、实现User封装类

3、实现action类 封装User类的实例属性并且生出set方法

4、实现User类型转换UserConverter类 继承ognl.DefaultTypeConverter 

5、实现注册,可以实现全局类型转换器和局部类型转换器  

a) 全局转换器,配置xwork-conversion.properties 放在src目录下在内容指定key-value值  为 需要转换的实体类的类名+包名  指定对应的converter的类名+包名

b) 局部转换起  配置

指定action中的实体实例的属性名和对应的converter的类名+包名

b) 自定义类型转换

i. 将类型转换器配置成全局级别只需要编写一个xwork-conversion.properties文件。放在src目录下。Key-value指定需要转换的实体类与转换器类内容如下:  java.util.Date=demo.converter.MyDateTypeConverter

ii. 可以继承ognl.DefaultTypeConverter类。也可以继承org.apache.struts2.util.StrutsTypeConverter这个类,实现两个方法来实现 自定义转换器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值