stuts2中struts.xml的配置

1. struts.xml中一些属性的默认值
 我们知道我们在使用struts框架的时候,需要对struts.xml进行配置,并且在这当中,有一些属性如果你不配置的话,它会有它的默认值。其情况如下表所示:

标签子元素默认值
package
 namespace默认值”“(默认值为空)
action
 namecom.opensymphony.xwork2.ActionSupport
 methodexecute
result
 name“success”

 

2. action路径的访问方式
 讲起来比较麻烦,用一个实例进行表述会比较方便,实例如下:

<package name="default" namespace="/" extends="struts-default">
    <action name="demo" class="com.action.DemoAction" method="test">
        <result name="win">/hello.jsp</result>
    </action>
</package>

当我们输入以下地址 http://localhost/struts_study(项目名)/1/2/3/demo时,讲道理应该是访问不了action,给个404的报错,结果却访问到了action。为什么?
 原因:struts2中的action被访问的时候,查找的顺序如下:

namespaceaction中的name是否查找到
/1/2/3demo没找到
/1/2demo没找到
/1demo没找到
/demo再没找到就报404错误

 
3. 默认action
 <default-action-ref name=“要使用默认action的名称”>
 作用:配置了这个,当访问的路径,其他action处理不了,就使用这个默认action来进行处理。说个比喻,好比老师上课点名来回答问题,点到了小明,但是小明今天逃课去上网,也就是小明不在教室,这时候就默认让学习委员小红来回答问题。提问小二,小二特么逃课去打LOL,也不再教室,这时候也默认让学习委员小红来回答问题。去小红就相当于默认action。
4. 默认的action处理类
 <default-class-ref class=”类的全名”>
 作用:客户端访问action,已经找到匹配的<action>元素,但是action元素没有class属性,就执行默认的action处理类。说个比喻,老师上课点名来朗读课本,点到了小明,小明今天有来上课,但是没带书,于是老师把书给了小明,让他朗读。然后又点了小二,小二今天也有来教室,但是也没带书,于是老师又把书给了小二,让他朗读。这时候,老师的书本就好比是默认的action处理类。
5. struts2的常量配置
 struts2的默认常量都在default.properties配置了。如果我们要进行自定义的常量配置或者要覆盖默认常量,应该怎么配置?
<1>在struts.xml中进行配置。(推荐使用)
<constant name=”常量名称” value=”常量值”></constans>
例如定义一个叫hello的常量,它的值为word:

 <struts>
     <constant name="hello" value="word"></constant>
 </struts>

 
<2>在struts.properties的文件中进行配置。(几乎不使用这个方法)
<3>在web.xml中进行配置。(比较少用这个方法)
 在配置StrutsPrepareAndExecuteFilter中的初始化参数中进行配置常量。
例如配置一个hello的常量,值为word:

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
        </filter-class>
        <init-param>
            <param-name>hello</param-name>
            <param-value>word</param-value>
        </init-param>
    </filter>

 
6. 一些常用常量的作用

常量名称常量的默认值作用
struts.action.extensionaction,,指定struts2框架默认拦截的后缀名为action和不写扩展名。
struts.i18n.encodingUTF-8相当于request. setCharacterEncoding=”UTF-8”,解决乱码问题。
struts.serve.static.browserCachefalsefalse不缓存,true浏览器会缓存静态内容,产品环境设置true、开发环境设置false
struts.devModetrue提供详细的报错页面,修改struts.xml文件后,不需要再重启服务器。

 
7. struts.xml文件分离
 文件分离的的目的:因为太多的配置写在用一个xml文件中,会造成阅读性极差,而且乱,不容易查找等。用这个办法就能实现一个模块一个配置文件。
文件分离实例:

<struts>
    <!--导入XXX.xml的内容,和JSP中的静态包含include相似-->
    <include file="XXX.xml" />
</struts>

8. result标签
<1>name属性的作用是:与action中的method的返回值匹配,进行跳转。
<2>type属性,在struts-default.xml中定义了type可以取的值:

type标签中的name属性作用1(重点)2(了解)
dispatcher请求转发,也是默认值,一般用于从一个action跳转到页面1
chain相当于请求转发,一般用于从一个action跳转到另一个action1
redirect重定向,一般用于从一个action跳转到页面
redirectAction重定向,一般用于从一个action到另一个action1
stream代表的是服务器端返回的是一个流,一般用于下载1
freemarker现在使用的模板技术2
velocity以前的模板技术2

全局结果:

 //如果有局部结果的话,就会执行局部的结果
<global-results>
        <!-- 全局结果 当前包中 所有Action都可以用-->
        <result name="success">/demo.jsp</result>
</global-results>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值