struts2 的简单配置总结

struts2 的基本工作流程:

 

struts2 的简单配置总结_第1张图片

 

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

 

 

你可能感兴趣的:(java,struts2.0)