【java框架】Struts2(2) -- Struts2配置

1.   Struts2配置项细节

1.1.导入外部xml文件

在struts.xml文件中使用标签,file属性上引入外部的.xml文件。

【java框架】Struts2(2) -- Struts2配置_第1张图片

 

 

 

example.xml配置中又分隔了另外一个action,package一般不同。具体如下:

【java框架】Struts2(2) -- Struts2配置_第2张图片

这样做的目的是为了拆分struts.xml中过多的action及杂乱的package包。

1.2.package包的配置

xml version="1.0" encoding="UTF-8" ?>
DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    
  <package name="default" namespace="/extra" extends="struts-default">
        <action name="index" class="cn.yif.action.UserAction" method="execute">
            <result name="success" type="dispatcher">
               /success.jsp
            result>
        action>
  package>
struts>

具体访问请求如下:

【java框架】Struts2(2) -- Struts2配置_第3张图片

注意:

①    同一个包下面的action名称是不能重复的,不同包下的action可以重复;

②    包的名称不能够重复;

③    包的命名空间不能够重复。

 

1.3.package包的查找过程

对应到struts.xml配置中,访问路径主要是在packageNameSpace和actionName上,如下以:http://localhost/system/abc/hello的访问为例,这里会把url分为两部分,

packageNameSpace:/system/abc,actionName:/hello。

这里首先会通过packageNameSpace在配置文件中查找对应的标签,如果没有找到那么就让路径退一级,即/system进行查找,如果找到,那么就在该包中查找对应的,不管有没有找到对应的都不会再次进行查找。

最后找到”/”,这里也是一个包,表示根包,会在根包中继续进行查找。

注意:以上流程,如果所有的包中都没有找到对应,那么都会在默认的包中查找;

查询过程分析,举例说明如下:

现在我在浏览器上的路径是:/path1/path2/path3/hello

我们需要把这个看做两个部分:

Package路径部分: /path1/path2/path3

Action部分:hello                                                            

查询的时候先找路径:

 /path1/path2/path3 没找到会找 /path1/path2

 /path1/path2 没找到会找 /path1

 /path1 没找到会找到根包 /

注意:路径部分找不到时才会到上层路径中找,如果找到了就不会再向上查找了;找到路径后找Action;Action找到直接使用,找不到会尝试找默认default包中的默认Action(在default.xml文件中)

namespace="/":代表一个根包;

namespace="":代表一个默认包;

1.4.Struts2配置文件优先级

Struts2框架按照如下顺序加载struts2配置
default.properties 该文件保存在 struts2-core-2.3.7.jar 中 org.apache.struts2包里面
我们配置中很多常量都在这里面
struts-default.xml 该文件保存在 struts2-core-2.3.7.jar
 我们学习的阶段,可以来这里查看很多配置的方式
struts-plugin.xml 该文件保存在struts-Xxx-2.3.7.jar 这里面是一些插件
上面三个配置文件,是Struts2默认的配置文件,我们不能够对修改它
struts.xml 该文件是web应用默认的struts配置文件
struts.properties 该文件是Struts的默认配置文件(一般不写在这里面)
web.xml 该文件是Web应用的配置文件(一般不用)
如果多个文件配置了同一个struts2 常量,则后一个文件中配置的常量值会覆盖前面文件配置的常量值

上述内容前面三种jar包,不允许修改,后面三种可以自己进行修改。

配置文件的优先级:都是从上往下优先级依次递增,越往下优先级越高

1.5.Struts2常量配置

在default.properties中可以找到我们的常量配置。

Struts2.xml文件中常用的常量配置:





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

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

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

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

1.6.Struts2默认配置

①    中的class默认class是继承于struts-default包中的,实际中不写默认使用该配置;

②    中的method默认配置是execute

③    标签中的name默认配置是success

④    标签中的type默认配置是dispather

<package name="default" namespace="/" extends="struts-default">

<action name="const">
    <result>/success.jspresult>
action>
package>

你可能感兴趣的:(【java框架】Struts2(2) -- Struts2配置)