SSH框架之Struts的默认访问后缀、相同访问路径问题、常量

一、Struts中默认访问后缀:
1、Struts1中默认访问后缀是*.do
2、Struts2中默认访问后缀是*.action

3、如何修改默认访问后缀:
1)Struts2的.action访问后缀在哪里定义?
Struts-core-2.3.4.1.jar/org.apache.struts/default.properties中的

struts.action.extension=action,,

2)在struts.xml中进行对常量的修改
所有的项目都要使用,是一个全局配置,所以位置应该位于:
标签的后面,标签的前面!


<constant name="struts.action.extension" value="action,do,">constant>

4、情况分析

value="action,,"
    localhost:8080/struts_02/user_register          OK
    localhost:8080/struts_02/user_register.action   OK

value="action,"value="action"
    localhost:8080/struts_02/user_register.action   OK

value="action,do,"
    localhost:8080/struts_02/user_register          OK
    localhost:8080/struts_02/user_register.do       OK
    localhost:8080/struts_02/user_register.action   OK

value="action,do"
    localhost:8080/struts_02/user_register.do       OK
    localhost:8080/struts_02/user_register.action   OK

二、相同访问路径问题
问题产生:
1、Action
SSH框架之Struts的默认访问后缀、相同访问路径问题、常量_第1张图片
2、struts.xml

name="user_*" class="sram.config.UserAction4" method="{1}">
    <result name="success">/index.jspresult>


name="user_*" class="sram.config2.UserAction" method="{1}">
    <result name="success">/index.jspresult>

3、由于上述情况,所以二者想要访问register方法的访问路径均为:
http://localhost:8080/struts_02/user_register

结果:
当我们访问此路径时,运行情况到底如何?
SSH框架之Struts的默认访问后缀、相同访问路径问题、常量_第2张图片
由此可见,配置在前面的会被配置在后面的覆盖掉
SSH框架之Struts的默认访问后缀、相同访问路径问题、常量_第3张图片

三、Struts中的常量(Struts-core-2.3.4.1.jar/org.apache.struts/default.properties中)
1、详解:


<constant name="struts.i18n.encoding" value="UTF-8"/>


<constant name="struts.action.extension" value="do"/>


<constant name="struts.serve.static.browserCache" value="false"/>


<constant name="struts.configuration.xml.reload" value="true"/>


<constant name="struts.devMode" value="true" />


<constant name="struts.ui.theme" value="simple" />

 
<constant name="struts.objectFactory" value="spring" />


<constant name="struts.enable.DynamicMethodInvocation" value="false"/>


<constant name="struts.multipart.maxSize" value=“10701096"/>

2、应用:动态方法调用(不推荐使用,原因:这种形式,需要对程序结构有所了解,不安全)
1、动态方法调用语法:action name+!+方法名
2、举例:
SSH框架之Struts的默认访问后缀、相同访问路径问题、常量_第4张图片

你可能感兴趣的:(SSH框架之Struts的默认访问后缀、相同访问路径问题、常量)