Day3:struts.xml常用配置解析

<struts><packagename="demo"extends="struts-default"><global-results><resultname="print">/result.jsp</result></global-results><actionname="submit"class="action.MoreSubmitAction"> ……</action><actionname="my"class="action.MoreSubmitAction"method="my">……</action></package></struts>


1.使用<include>标签重用配置文件

      在Struts2中提供了一个默认的struts.xml文件,但如果package、action、interceptors等配置比较多时,都放到一个struts.xml文件不太容易维护。因此,就需要将struts.xml文件分成多个配置文件,然后在struts.xml文件中使用<include>标签引用这些配置文件。这样做的优点如下:

    结构更清晰,更容易维护配置信息。

    配置文件可以复用。如果在多个Web程序中都使用类似或相同的配置文件,那么可以使用<include>标签来引用这些配置文件,这样可以减少工作量。

    假设有一个配置文件,文件名为submit.xml,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" 
    "http://struts.apache.org/dtds/struts-2.1.7.dtd"> 
<struts>

<package name = "submitPackage" extends = "struts-default">
    <action name="submit" class="com.struts.demo.MoreSubmitAction">
	<result name="save">/submit_result.jsp</result>
	<result name="print">/submit_result.jsp</result>
	</action>
</package>
</struts>

则struts.xml引用submit.xml文件的代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" 
    "http://struts.apache.org/dtds/struts-2.1.7.dtd"> 
<struts>
<include file="submit.xml"/>
<package name = "myPackage" extends = "struts-default">

	<action name="first">
	<result>/first.jsp</result>
	</action>
	
	<action name="InfoAction" class="com.struts.demo.InfoAction">
	<result name="add">test_add.jsp</result>
	<result name="update">test_update.jsp</result>
	</action>
	
	<action name="sum" class="com.struts.demo.FirstAction">
	<result name="positive">/positive.jsp</result>
	<result name="negative">/negative.jsp</result>
	</action>
	
</package>
</struts>

注意:用<include>引用的xml文件也必须是完成的struts2的配置。实际上<include>在引用时是单独解析的xml文件,而不是将被引用的文件插入到struts.xml文件中。

可能遇到的报错:There is no Action mapped for namespace [/] and action name [submit] associated with context path [/StrutsExample].

解决方法   A:检查是否标签、名称等写错

                 B:重新配置好struts.xml 服务要重新启动 

 

2.选择result类型

在默认时,标签的type属性值是“dispatcher”(实际上就是转发,forward)。开发人员可以根据自己的需要指定不同的类型,如redirect、stream等。如下面代码所示:

<result name="save"type="redirect">
  /result.jsp
</result>

  全局result

有很多时候一个<result>被多个<action>使用,这时可以使用<global-result>标签来定义全局的<result>,代码如下:

<struts>
<package name="demo"extends="struts-default">
<global-results>
<result name="print">/result.jsp</result>
</global-results>
<action name="submit"class="action.MoreSubmitAction">
...
</action>
<action name="my"class="action.MoreSubmitAction"method="my">
...
</action>
</package>
</struts>

如果<action>中没有相应的<result>,struts2就会使用全局的<result> 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值