Struts2 struts.xml配置

 


    <package name="action" namespace="/" extends="struts-default">
        class="action.LoginAction" method="execute">
            /teacher.jsp
            /student.jsp
            /error.jsp
        
    package>

    

 

当xml文件较大时,可以使用多个xml文件来配置,比如在每个包下使用一个xml来配置这个包的action,在struts.xml中使用把其他xml配置文件包含进来即可。

 

 

 

配置命名空间

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

命名空间常配置为 /  或  /包名。

 

 

配置为 / 时,表示这个包下的action都在这个WebApp的命名空间中,可直接通过action的name来引用。

<package name="action" namespace="/" extends="struts-default">
        LoginAction" class="action.LoginAction" method="execute">
            /teacher.jsp
            /student.jsp
            /error.jsp
        
    package>
LoginAction">

 

 

 

配置为 /xxx  时,表示这个包下的action都在命名空间xxx中,要通过命名空间来引用。

<package name="action" namespace="/action" extends="struts-default">   
        class="action.LoginAction" method="execute">
            /teacher.jsp
            /student.jsp
            /error.jsp
        
    package>
action/LoginAction">

 

 

注意最前面没有 / 

最前面的/表示域名根目录(localhost),不是表示当前WebApp的根目录。这种写法是定位到   http://localhost:8080/LoginAction

 

 

 

 

设置处理请求的方法


method="exe">

可在中使用method属性来设置。缺省时默认为execute。

 

 

 

 

配置结果处理












可在当前action中配置当前action的,也可以在配置整个包的。

的name指定逻辑视图名(返回的字符串),元素体指定物理视图名,type指定视图处理方式。

 

 

视图处理方式可以使用type属性来设置,缺省时默认为dispatcher,也可以在struts-default.xml中设置全局的:将default属性设置为true即可


            chain" class="com.opensymphony.xwork2.ActionChainResult"/>
            dispatcher" class="org.apache.struts2.result.ServletDispatcherResult" default="true"/>
            class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
            class="org.apache.struts2.result.HttpHeaderResult"/>
            redirect" class="org.apache.struts2.result.ServletRedirectResult"/>
            redirectAction" class="org.apache.struts2.result.ServletActionRedirectResult"/>
            stream" class="org.apache.struts2.result.StreamResult"/>
            class="org.apache.struts2.result.VelocityResult"/>
            class="org.apache.struts2.views.xslt.XSLTResult"/>
            plainText" class="org.apache.struts2.result.PlainTextResult" />
            class="org.apache.struts2.result.PostbackResult" />
        

 

 

chain    链式处理,由下一个action接着处理


                LoginAction
                /
          

需要用2个指定下一个action的信息,actionName指定下一个Action的name,namespace指定下一个action的namespce(一般是 / 或者 /包名 )。

 

 

dispatcher   转发给jsp,由jsp来响应。默认值。

/xxx.jsp

 

 

redirect     重定向到新的url,可以是任何类型的url。直接写url即可。

/XxxAction
/xxx.jsp

重定向到action:命名空间是/,写为/action名;命名空间是/xxx,写为/xxx/action名。

用redirect重定向到action,IDEA会报红,但能通过编译,效果正常。建议用redirectAction,更专业。

 

 

redirectAction   重定向到另一个action


                LoginAction
                /
          

 

 

plainText    显示指定页面的源码

/xxx.jsp

只能显示jsp、html等的源码,不能显示action的源码。

 

 

stream   向浏览器返回一个InputStream,一般用于文件下载

 

 

 

 

 

设置拦截器

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

        

        class="action.LoginAction" method="exe">
            
            
            
        
    package>

 

中注册拦截器、拦截器栈。

注册一个拦截器,name指定拦截器名,class指定拦截器对应的java类。

注册一个拦截器栈,name指定拦截器栈的名字。指定要引用的拦截器。

 

可以在中使用设置当前要使用的拦截器、拦截器栈,一个引用一个拦截器、拦截器栈,可同时使用多个

也可在中设置整个包的默认拦截器、拦截器栈,对此包下所有的action都有效。

引用的拦截器、拦截器栈可以是自己定义的,也可以是structs-default.xml中自带的。

 

 

 

的子元素有一定的顺序,要放到最后。

中的子元素也有一定的顺序,不能随意放置。

 

可仿照structs-default.xml进行配置。

可直接对 extends="struts-default" 中的struts-default,Ctrl+B找到struts-default.xml,也可以在struts2-core.jar的根目录下找。

 

 

 

 

Struts2配置中的默认值

    <package name="action" namespace="/" extends="struts-default">
        <default-interceptor-ref name="">default-interceptor-ref>
        <default-action-ref name="">default-action-ref>
        <default-class-ref class="">default-class-ref>
    
        class="" method="">
            
            
        

    package>

 

配置默认的拦截器、拦截器栈,name指定要引用的拦截器、拦截器栈。

配置默认action,name指定要引用的action的name,当命名空间中没有指定的action时,会调用默认action来处理。

配置action的默认处理类,class指定一个action类,当action缺省class属性时,会设置为默认的Class。

 

缺省method属性时,默认为execute;

缺省name属性时,默认为success;缺省type属性时,默认为dispatcher(转发)。

 

 

struts-default.xml中的默认配置:

 <default-interceptor-ref name="defaultStack"/>
 <default-class-ref class="com.opensymphony.xwork2.ActionSupport" />

 

ActionSupport类的execute()方法:

public String execute() throws Exception {
        return "success";
    }

 

你可能感兴趣的:(Struts2 struts.xml配置)