关于Struts的配置文件(二)

之前列出了struts.property里面的大部分属性,基本是记不住的,就是要用的时候多查查。

今天主要说的是struts.xml里面的配置。

1.最常用的package配置

name:必填,用来指定包的属性

extends:可选,用来指定继承,可以继承其他包的Action或拦截器

通常我们配置struts.xml的时候,都继承一个名为“struts-default.xml”的包,这是struts2中内置的包。

namespace:可选,用来指定命名空间

 

2.命名空间的配置

可以通过namespace去配置访问action的url

例如

<package name= "user" namespace ="/User" extends="struts-default">

<action name= "Login">

<result> pages/login.jsp</result >

</action>

<action name= "Welcome" class ="org.mxiao.struts.action.HelloAction">

<result name= "SUCCESS">pages/welcome.jsp </result>

</action>

</package>

访问的路径变为

http://localhost:8080/user/login.action

若没有设定namespace,默认的namespace为""

 

3.包含配置<include>

当package列表太长,我们可以使用包含配置来管理配置文件。

<struts>

<include file="user.xml"/>

<include file="goods.xml"/>

<include file="order.xml"/>

</struts>

 

4.常量配置<Constant>

我们除了可以使用struts.property定义struts2的配置文件外,还可以通过struts.xml做配置。

<struts>

  ..............

<constant name="struts.i18n.encoding" value="GB2312"/>

</struts>

可以与struts.property里面的可配置属性一一对应。

 

5.Action中通配符的使用。

当action中返回的方法吗和返回值类似时,可以用通配符的方式来简化配置。

public class Test {

public String hello1(){

return "result1";

}


public String hello2(){

return "result2";

}


public String hello3(){

return "result3";

}

}

 

<package name="struts2app" extends="struts-default">

<action name="hello*" class="com.mxiao.action.hello{1}">

<result name="result{1}">/result{1}.jsp</result>

</action>

</package>

另外在url或form中使用'!'可以使用访问action中指定的方法。

例如可以使用TestAction!hello1 来访问该方法。

 

 

6.gloal result

对于某些公用的action,可以讲结果集定义在global result中,这样做的话,当struts发现action中返回的结果中不被包含在action定义的结果集中时,就会从global result中查找,

< package name= "user" namespace = "/User" extends= "struts-default">

< global-results >

< result name= "login" >pages/login.jsp </ result>

</ global-results>

< action name= "ActionTest" class = "org.mxiao.struts.action.HelloAction">

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

</ action>

</ package>

Hello Action 可以相应loginsuccess两个结果集。

 

7. <default-class-ref>

当我们在配置Action的时候,如果没有为某个Action指定具体的class值时,系统将自动引用<default-class-ref>标签中所指定的类。在Struts2框架中,系统默认的class为ActionSupport,该配置我们可以在xwork的核心包下的xwork-default.xml文件中找到。

 

8. <default-action-ref>

如果在请求一个没有定义过的Action资源时,系统就会抛出404错误。这种错误不可避免,但这样的页面并不友好。我们可以使用<default-action-ref>来指定一个默认的Action,如果系统没有找到指定的Action,就会指定来调用这个默认的Action。

另外常用的可以配置的tag还有interceptor 和exception,之后会用另外的章节单独介绍。

posted @ 2013-07-20 14:04  萧大爷  阅读(171)  评论(0编辑  收藏  举报