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
Sttruts2之路径请求
最新推荐文章于 2024-04-05 21:42:11 发布