【SSH】struts.xml

  对于ssh的学习而已,对我来说,配置文件们真的是很难理解的一部分内容,貌似理解,实则说不出来什么。为了更好的学习相关内容,因此写下本篇博文,本篇博文的内容是struts.xml的相关知识。

一.struts核心文件

文件 主要作用 关键元素
web.xml 1.初始化配置信息:比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等
2.在服务器启动时将配置的文件加载到内存
3.它不是一个Web的必要文件,没有它,网站也可以正常工作的
1.欢迎页面:welcome-file-list ; welcome-file
2.过滤器:filter ; filter-mapping
3.错误处理:error-page
4.监听器:listener
5.会话过期时间:session-config
6.定义参数:init-param
struts.xml 1.核心配置文件,主要负责管理应用中的Action映射,以及该Action包含的result定义等。
2.主要内容:(1)全局属性
(2)用户请求和相应Action之间的对应关系,可能用到的参数和返回结果
(3)导入其他配置文件
(4)拦截器配置
1.配置包:package
2.全局结果:global-results
3.拦截器:interceptors
4.include
5.action
6.result
struts.properties 1.struts2框架的全局属性文件,自动加载,可用来管理struts的大量常量
2.包含很多key-value对,该文件可以使用constant完全配置在struts.xml中
1.默认编码集:struts.il8n.encoding
2.是否使用开发模式:struts.devMode
3.指定配置管理器:struts.configuration
4….

二.struts.xml

1.基本配置





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

        
        <action name="x" class="yAction">
            <result name="index">/z.jspresult>
        action>

    package>
struts>

注:
1.struts是根标签,其他所有的标签都放在它的中间。
2.package元素定义了一个包,在struts2框架中,用包来组织Action和拦截器,每个包由零到多个拦截器及Action组成。
3.action元素定义了一个Action和其对应的类。
4.result元素定义了Action返回结果对应的视图。

2.关键元素详解

(1)package

实例:


<package name="shop" extends="struts-default" namespace="/">      
    
    <action name="index" class="indexAction">
        <result name="index">/WEB-INF/jsp/index.jspresult>
    action>
package>

package元素属性:

属性 说明
name 必选属性,标识包的名字,方便在其他包中被引用
extends 可选属性,指定该包继承其他包
namespace 可选属性,指定命名空间,标识此包下的action的访问路径
abstract 可选属性,指定该包为抽象包

  package元素用来配置包,name属性用来唯一标识包,还可以通过指定extends属性让一个包继承另一个包,继承包可以从被继承包那里继承到拦截器、action等。
  namespace可以指定包对应的命名空间,当指定后,该包所包含的action处理的url是:命名空间+action。以如上代码举例:url是http://localhost:8080/indexaction。

(2)global-results

实例:

<struts>
    <package name="shop" extends="struts-default" namespace="/">
        <global-results>
            <result name="msg">/WEB-INF/jsp/msg.jspresult>
        global-results>
    package>
struts>

  该元素配置包中的全局结果,当一个action处理用户请求后返回时,会首先在该action本身的局部结果中进行搜索,如果局部结果中没有对应的结果,则会查找全局结果。

(3)interceptors

实例:

<struts>
    <package name="shop" extends="struts-default" namespace="/">
        <interceptors>
            <interceptor name="privilegeInterceptor" class="cn.itcast.shop.interceptor.PrivilegeInterceptor"/>      
        interceptors>
    package>
struts>

  拦截器可以在用户请求Struts的Action时的前或后,进行一些业务处理。例如,在进行网上购物时,将商品加入购物车的前提是,用户必须登陆成功。

(4)include

实例:

<struts>
    <include file="a.xml"/>
struts>

  该元素用来在一个struts.xml配置文件中包含其他的配置文件。这样做的目的是解耦合,将action以模块的方式来加以管理,即将存在相关性的action放在同一个xml文件中,然后通过在struts.xml文件中配置标签include进行实现(模块化的xml文件也必须是标准的struts2配置文件)。

(5)action

实例:

name="user_*" class="userAction" method="{1}">
    <result name="registPage">/WEB-INF/jsp/regist.jspresult>

action元素属性:

属性 说明
name 必选属性,标识action,指定该action所处理的请求的url
class 可选属性,指定action对象对应的实现类
method 可选属性,指定请求action时调用的方法
converter 可选属性,指定类型转换器的类

  在配置action元素时,如果没有指定class属性值,则其默认值为类com.opensymphony.xwork2.ActionSupport,该默认类会使用默认的处理方法execute()来处理请求;如果指定method属性值,则该action可以调用method属性中指定的方法,而不是默认的execute()。
  实例代码中method={1}中的{1}代表user_*中的,即如果加入你访问路径是/user_regist .action,则此刻访问的是该Action中的regist方法。

(6)result

实例:

name="order_*" class="orderAction" method="{1}">
    <result name="saveSuccess">/WEB-INF/jsp/order.jspresult>
    <result name="updateStateSuccess" type="redirectAction">order_findByUid.action?page=1result>

struts2支持的结果类型:

结果类型 说明
dispatcher 将请求转发到指定的jsp页面
redirect 将请求重定向到指定的视图
redirectaction 直接跳转到其他action
chain 处理action链
freemarker 指定使用Freemarker模板作为视图
httpheader 控制特殊的http行为
stream 向浏览器返回一个inputstream(一般用于文件下载)
velocity 指定使用velocity模板作为视图
xslt 用于xml/xslt整合
plainText 显示某个页面的原始代码

  当调用action方法处理结束返回后,下一步就是使用result元素来设置返回给浏览器的视图。配置result元素是常需指定name和type两个属性。name属性对应从action方法返回的值,success为其默认值。type属性指定结果类型,默认的类型是dispatcher。

(7)constant

  constant用于设置一些struts2的常量,这些常量用于控制struts2的某些特性。通过对它的属性的配置,可以改变Struts 2 框架的一些默认行为,struts.properties不是必须的文件,它的内容可以在struts.xml中完成同样的功能配置。
常用设置:

<struts>
    
    <constant name="struts.action.extension" value="action" />
    
    <constant name="struts.devMode" value="true" />
    
    <constant name="struts.configuration.xml.reload" value="true" />
    
    <constant name="struts.serve.static.browserCache" value="false" />
    
    <constant name="struts.i18n.encoding" value="utf-8" />
    
    <constant name="struts.i18n.reload" value="true" />
    
    <constant name="struts.multipart.maxSize" value="104857600" />
    
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    
    <constant name="struts.enable.SlashesInActionNames" value="false" />
    
    <constant name="struts.tag.altSyntax" value="true" />
    
    <constant name="struts.dispatcher.parametersWorkaround" value="false" />
    <package name="shop" extends="struts-default">
    package>
struts>

小结
  一分耕耘一分收获~~~

你可能感兴趣的:(【SSH】struts.xml)