struts2 的简单配置总结

来源:互联网 发布:更改电脑mac地址 编辑:程序博客网 时间:2024/05/20 15:41

struts2 的基本工作流程:

 

 

Struts2 的基本配置:

1.copy  struts.xml

2.copy  *.jar

3.配置 web.xml

<filter>  <filter-name>struts2</filter-name>  <filter-class>   org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  </filter-class> </filter> <filter-mapping>  <filter-name>struts2</filter-name>  <url-pattern>/*</url-pattern> </filter-mapping>

 

4.配置 struts.xml

①:注释掉原有的 <struts></struts> 标签之间的所有内容。
②:copy <package></package> 标签的所有内容。

<!-- namespace 一般以模块命名,默认为空,当 namespace 不写时,只要在 URL 中访问 hello,都可以直接访问,例如: --> <!-- http://127.0.0.1:8080/Struts2/hello --> <!-- http://127.0.0.1:8080/Struts2/dasdsad/adsadas/sadsadasd/sadasdasdqw/hello --><package name="default" namespace="/" extends="struts-default">        <!-- 默认跳转的 action --><default-action-ref name="hello" />        <action name="hello">            <result>                /Hello.jsp            </result>        </action>    </package>

 

<!-- 开发模式 --> <!-- 修改 <action name="hello">,不需要每次重启启服务器,让程序马上有反馈 --> <constant name="struts.devMode" value="true" />

 

二:
 namespace :决定了 action的访问路径,默认为"",可以接收所有路径的 action

 namespace 可以写为 / , 或 /xxx , 或者 /xxx/yyy , 对应的 action 访问路径为 /index.action , /xxx/index.action , 或者 /xxx/yyy/index.action.
namespace 最好也用模块来进行命名

 

 

示例: struts2.xml

 

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"    "http://struts.apache.org/dtds/struts-2.0.dtd"><struts><!--     <constant name="struts.enable.DynamicMethodInvocation" value="false" />    <constant name="struts.devMode" value="false" />    <include file="example.xml"/>    <package name="default" namespace="/" extends="struts-default">        <default-action-ref name="index" />        <action name="index">            <result type="redirectAction">                <param name="actionName">HelloWorld</param>                <param name="namespace">/example</param>            </result>        </action>    </package> -->   <!-- 开发模式 --> <!-- 修改 <action name="hello">,不需要每次重启启服务器,让程序马上有反馈 --> <constant name="struts.devMode" value="true" />    <!-- namespace 一般以模块命名,默认为空,当 namespace 不写时,只要在 URL 中访问 hello,都可以直接访问,例如: --> <!-- http://127.0.0.1:8080/Struts2/hello --> <!-- http://127.0.0.1:8080/Struts2/dasdsad/adsadas/sadsadasd/sadasdasdqw/hello --> <package name="demo" namespace="/demo" extends="struts-default">   <!-- 当访问的 action 不存在的时候,默认跳转的 action -->        <default-action-ref name="deaf"/>                        <!-- 当执行这个 action 的时候,会去找 class 指定的类中的 execute 方法,并根据返回的 String 对象,找 action 中对应的 name 的 result  -->        <!-- 当 struts.xml 中的 action 没有配置 class 时,默认访问的是继承 ActionSupport 中的这个 execute 方法(IndexAction3.java) -->        <!--  method="demoMethod" 对应的是 java 类中的方法,访问的时候就不用在 URL 中写:!demoMethod(不推荐) -->        <!-- http://127.0.0.1:8080/Struts2/demo/demohello!demoMethod(推荐)(DMI 动态方法调用) -->        <!-- <action name="demohello" class="com.v7struts2.test.StrutsDemo" method="demoMethod" > -->        <action name="demohello" class="com.v7struts2.test.StrutsDemo" >                <result name="success">                /Hello.jsp            </result>            <result name="shutdown">                /shutdown.jsp            </result>        </action>                <!-- 默认跳转 action  -->        <action name="deaf">            <result>                /default.jsp            </result>        </action>                <!-- 通配符 -->        <!-- 通配符 method 中的占位符,是根据 action-name 中的 * 来匹配的,从{0}~{n} 对应 StudnetInfo.java 中的方法 -->        <!-- http://127.0.0.1:8080/Struts2/demo/StudentInfo_Info -->        <!-- http://127.0.0.1:8080/Struts2/demo/Student {1}_ {2} -->        <!--<action name="Student*_*" class="com.v7struts2.test.Student{1}" method="{2}" >        <result name="SUCCESS">/Student{2}_success.jsp</result>        </action> -->                <!-- 通配符,优化 -->        <!-- http://127.0.0.1:8080/Struts2/demo/StudentInfo_Info -->        <!-- 灵活性更强 -->        <action name="*_*" class="com.v7struts2.test.{1}" method="{2}" >        <result name="SUCCESS">/Student{2}_success.jsp</result>        </action>                <!-- 当配置如下的时候,系统会先调下列精确度高的 action ,而不会去调用使用通配符的 action -->        <!-- 使用通配符的 action 的优先级会低于精确度高的 action 的优先级 -->        <!-- 而同时使用通配符的两个 action , 无优先级,只与两者前后的顺序有关. -->        <action name="StudentInfo_Info" class="com.v7struts2.test.StudentInfo" method="Info" >         <result name="SUCCESS">/StudentOK_success.jsp</result>        </action>                    </package>        <!-- Add packages here --></struts>


 

 

 

 


 

 

 

 

 


<!-- 开发模式 --> <!-- 修改 <action name="hello">,不需要每次重启启服务器,让程序马上有反馈 --> <constant name="struts.devMode" value="true" />


 

 


4.配置 struts.xml4.配置 struts.xml4.配置 struts.xml

 

 

0 0
原创粉丝点击