Sttruts2之路径请求

struts2给我们提供了一个struts.xml核心配置文件来匹配我们的请求路径

匹配路径:http://localhost:8080/请求
<package name="struts2" extends="struts-default" namespace="/">
  <action name="请求"   class="控制器类"  method="默认execute()">
  <result name="">页面</result>  
  </action>
</package>
 
 匹配路径:http://localhost:8080/user/请求
<package name="struts3" extends="struts-default" namespace="/user">
 <action name="请求"   class="控制器类"  method="默认execute()">
  <result name="">页面</result>  
  </action>
</package> 
说明:
1.struts.xml中可以有多个package,但必须保证不同的package的name和namespace是不同的
2.namespace的含义 可以理解为一个模块 在请求路径中 要访问对应的action 必须要加上namespace 主要目的是用来区分不同包下面同名的action
3.action对应method属性可以不指定  默认跳转到控制器类中execute方法
4.result的type属性可以不指定 默认为dispatcher dispatcher为转发类型


1.动态方法调用 一个action去处理多个请求 动态方法调用可以不用设置action的method方法
默认这个配置是关着的
<!--动态方法调用-->
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<package name="struts2" extends="struts-default" namespace="/">
  <action name="请求"   class="控制器类">
  <result name="">页面</result>  
  </action>
</package>
匹配的路径为:http://localhost:8080/请求!methodName


2.通配符匹配
约定大于技术  只需要配置一个action就可以了 默认的通配符为_
<package name="struts2" extends="struts-default" namespace="/">
    <action name="*_*" class="com.oracle.action.{1}Action" method="{2}">
        <result name="{2}">/{1}/{2}.jsp</result>
    </action>
</package>

匹配的路径为: http://localhost:8080/User_add


3.如果是想要使用/的方式  需要在动态方法调用配置的基础上添加 SlashesInActionNames配置
<!--将请求路径设置为restful的方式-->
 <constant name="struts.enable.SlashesInActionNames" value="true"></constant>
<package name="struts2" extends="struts-default" namespace="/">
    <action name="*/*" class="com.oracle.action.{1}Action" method="{2}">
        <result name="{2}">/{1}/{2}.jsp</result>
    </action>
</package>

匹配的路径为: http://localhost:8080/User/add 

猜你喜欢

转载自blog.csdn.net/qq_38334528/article/details/80289315