struts2 的struts.xml文件怎么配置

 我来答
就烦条0o
2016-06-30 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46489
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
<!-- include节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 -->
<include file="struts-default.xml"></include>

<!-- package提供了将多个Action组织为一个模块的方式
package的名字必须是唯一的 package可以扩展 当一个package扩展自
另一个package时该package会在本身配置的基础上加入扩展的package
的配置 父package必须在子package前配置
name:package名称
extends:继承的父package名称
abstract:设置package的属性为抽象的 抽象的package不能定义action 值true:false
namespace:定义package命名空间 该命名空间影响到url的地址,例如此命名空间为/test那么访问是的地址为http://localhost:8080/struts2/test/XX.action
-->
<package name="com.kay.struts2" extends="struts-default" namespace="/test">
<interceptors>
<!-- 定义拦截器
name:拦截器名称
class:拦截器类路径
-->
<interceptor name="timer" class="com.kay.timer"></interceptor>
<interceptor name="logger" class="com.kay.logger"></interceptor>
<!-- 定义拦截器栈 -->
<interceptor-stack name="mystack">
<interceptor-ref name="timer"></interceptor-ref>
<interceptor-ref name="logger"></interceptor-ref>
</interceptor-stack>
</interceptors>

<!-- 定义默认的拦截器 每个Action都会自动引用
如果Action中引用了其它的拦截器 默认的拦截器将无效 -->
<default-interceptor-ref name="mystack"></default-interceptor-ref>

<!-- 全局results配置 -->
<global-results>
<result name="input">/error.jsp</result>
</global-results>

<!-- Action配置 一个Action可以被多次映射(只要action配置中的name不同)
name:action名称
class: 对应的类的路径
method: 调用Action中的方法名
-->
<action name="hello" class="com.kay.struts2.Action.LoginAction">
<!-- 引用拦截器
name:拦截器名称或拦截器栈名称
-->
<interceptor-ref name="timer"></interceptor-ref>

<!-- 节点配置
name : result名称 和Action中返回的值相同
type : result类型 不写则选用superpackage的type struts-default.xml中的默认为dispatcher
-->
<result name="success" type="dispatcher">/talk.jsp</result>
<!-- 参数设置
name:对应Action中的get/set方法
-->
<param name="url">http://www.sina.com</param>
</action>
</package>
专注弹力球
2016-06-30 · TA获得超过502个赞
知道答主
回答量:122
采纳率:0%
帮助的人:27.7万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伪墨墨墨墨墨
2017-09-25 · TA获得超过2210个赞
知道大有可为答主
回答量:1678
采纳率:85%
帮助的人:934万
展开全部

package元素

package元素用来配置包。在Struts2框架中,包是一个独立的单位,通过name属性来唯一标识包。还可以通过extends属性让一个包继承另一个包,extends属性值就是被继承包的name属性值,继承包可以从被继承包那里继承到拦截器、Action等。

Action的动态调用(DMI)

Struts2提供了包含多个处理逻辑的Action处理方式,即DMI(Dynamic Method Invocation,动态方法调用)。它是通过请求对象中的一个具体的方法来实现动态的操作。具体说,在请求Action的URL地址后加上请求方法字符串,与Action对象中的方法进行匹配。其中,Action对象名称和方法之间用“!“隔开。

通配符

在实际的项目开发中,会出现多个Action定义的绝大部分都是相同的情况,这时就会产生大量冗余。对于这种情况,Struts2也给出了相应的解决方法,即使用通配符。

常量配置

在之前提到struts.properties配置文件的介绍中,我们曾经提到所有在struts.properties文件中定义的属性,都可以配置在struts.xml文件中。而在struts.xml中,是通过<constant>标签来进行配置的。

    <constant name="struts.action.extension" value="action"></constant>
    <constant name="struts.ognl.allowStaticMethodAccess" value="true" />
    <constant name="struts.ui.theme" value="simple"></constant>
    <constant name="struts.custom.i18n.resources" value="message"></constant>
    <constant name="struts.i18n.encoding" value="UTF-8"></constant>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式