Struts.xml常用配置

全局视图

<global-results>

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

</global-results>

为Action的属性注入值

<action  name="hello"class="com.chen.action.Hello"  method="save">

            <param name="savepath">/image</param>

            <result  name="success">/saveOK.jsp</result>

</action>

修改Struts2请求的后缀

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

带参重定向

<action name="hello"class="com.chen.action.Hello" method="sayHao">

            <result name="success">/sayHao.jsp?message=${message}</result>

</action>

前端通过以下代码获得参数(会乱码)

${param.message}

若乱码则使用以下代码获取:

<%=URLDecoder.decode(newString(request.getParameter("username").getBytes("ISO8859-1"),"UTF-8"),"UTF-8") %>

动态方法调用

动态方法调用就是通过url动态指定调用Action哪个方法,而无需配置<action>的method属性。

通过 “Action名称!方法名”指定调用Action哪个方法。

(1)Struts.xml中设置Struts2支持动态方法调用

<constant name="struts.enable.DynamicMethodinvocation"value="true"/>

(2)struts.xml中配置无method属性的<action>标签,如下:

<action name="hello"class="com.chen.action.Hello">

            <result  name="success">/success.jsp</result>

</action>

(3)通过“Action名称!方法名”就会执行对应Action中的指定方法。

使用通配符

<action name="*_*"class="com.chen.action.{1}" method="{2}">

            <result name="success">/{2}.jsp</result>

</action>

•       *_*代表匹配两个字符串;

•       {1} 匹配用于执行class;

•       {2} 匹配用于指定method执行方法和结果页面。

Action配置中的各种默认值

1. 如果没有为action指定class,默认是ActionSupport

2. 如果没有为action指定method,默认执行action中的execute()方法;

3. 如果没有指定resultname属性,默认值为success

配置默认Action

可以为每个package定义一个默认的Action,如果访问路径在package没有匹配<action>就会执行默认action。

<default-action-ref name="error"></default-action-ref>

<action name="error"class="com.chen.action.ErrorAction"  method="execute">

            <result>/WEB-INF/page/error.jsp</result>

</action>

配置Action默认处理类

如果配置<action> 没有指定class属性,就会执行Action的默认处理类,在struts-default.xml中,有如下配置:

<default-class-ref class="com.opensymphony.xwork2.ActionSupport"/>

添加外部配置文件

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

<struts>

    <include file="department.xml"></include>

<include file="employee.xml"></include>

</struts>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值