Struts.xml配置文件详解

1、package 元素:

1.1 作用:方便分模块化开发

1.2 属性:

name:必须有。唯一。标识一个包, 好有一定的含义。

extends:继承。一般要求必须继承struts-default的包。不继承该包,将无法使用struts2提供的一些核心功能。struts-default包在struts-default.xml中有配置,加载自己的struts.xml文件之前,框架就已经加载了struts-default.xml配置文件,所以我们可以使用。

abstract:是否是抽象包。让别人继承用的。没有任何action子元素的包就可以声明为抽象包。

namespace:名称空间。默认值是"",称之为默认名称空间。取值一般以/开头。

namespace和的name共同组成了用户访问的URI.
如下:URI=/user/hello.action
URI

1.3 关于namesapce的搜索顺序问题

搜索顺序

2、action 元素:

action:定义一个动作

name :动作名称。对应着用户的请求名称,默认的后缀是action或没有后缀

class:框架要实例化的动作类名称,全名称。默认值是:com.opensymphony.xwork2.ActionSupport。在struts-
default.xml中有定义。

method:执行的动作类的动作方法。默认值是execute

3、Struts2中的常用常量

default.properties中有
覆盖这些常量时,用后面的配置文件覆盖即可
struts.xml中<constant/>来覆盖

常量的名称取值说明
struts.devModetrue/false开启开发模式。配置文件修改后会自动加载;出错时能打印出更加详细的错误说明。真正运行时要改为false
struts.i18n.reloadtrue/falseproperties文件修改后会不会被自动加载
struts.configuration.xml.reloadtrue/falsexml配置文件修改后会不会被自动加载
struts.action.extensionactionstruts2框架处理URI后缀。默认是action或者没有。可以配置多个值,用逗号进行分割
struts.i18n.encodingUTF-8Struts2中使用的默认编码
struts.multipart.maxSize2097152:2MStruts2中进行文件上传时的文件大小限制
struts.objectFactory.spring.autoWirename与Spring框架进行集成用的
struts.objectFactoryspring与Spring框架进行集成用的
struts.serve.static.browserCachetrue是否允许浏览器进行缓存静态资源
struts.enable.DynamicMethodInvocationtrue/false是否允许动态方法调用。
struts.ui.themexhtmlStruts2UI标签库使用的默认样式主题
struts.ui.templateDirtemplate样式模板存在了什么文件夹中。

4、多个struts配置文件

user.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <package name="user" extends="struts-default">
        <action name="user" class="com.sd.action.User">
            <result name="success">/success.jsp</result>
        </action>
    </package>
</struts>

struts.xml

<!-- 覆盖默认的参数配置 -->
<constant name="struts.devMode" value="true"></constant>
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<include file="user.xml"></include>     

5、结果视图

5.1 result元素:


  1. 作用:配置逻辑结果视图。一个动作可以对应多个逻辑视图
  2. 属性:
    • name:逻辑视图名称,和动作类方法的返回值对应。默认是success
    • type:转向实际视图的方式。默认是dispatcher,转发,目标是一个页面。

type的取值:从struts-defualt.xml中找
1). dispathcer:目标是一个页面,请求转发
2). redirect:目标是一个页面,请求重定向
3). chain :目标是另外一个动作,请求转发
4). redirectAction:目标是另外一个动作,请求重定向

5.2 result中的参数设置

  1. 下面两种的写法本质上是一样的:
<action name="demo4">
    <result name="success" type = "dispatcher">/success.jsp</result>
</action>
<action name="demo4">
    <result name="success" type = "dispatcher">
        <param name="location">/success.jsp</param>
    </result>
</action>
  1. 转发的目标动作不在同一个包下,而且有着不同的namespace
<package name="p1" extends="struts-default">
    <action name="demo3" class="com.itheima.action.Demo3Action">
        <!-- 一个动作转向另外一个动作 -->
        <result name="success" type="chain">
            <!-- 转发到不同名称空间下的动作 -->
            <param name="namespace">/p2</param>    
            <param name="actionName">demo4</param>
        </result>
    </action>
</package>
<package name="p2" extends="struts-default" namespace="/p2">
    <action name="demo4">
        <result name="success" type="dispatcher">
            <!-- param设置参数:调用dispatcher对应的类的setLocation("/success.jsp") -->
            <param name="location">/success.jsp</param>
        </result>
    </action>
</package>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值