• Struts配置文件阐释


    1. Struts的配置节点之namespace

    下面的是没有添加命名空间:
    struts.xml:
    <
    package name="default" extends="struts-default">
    login.jsp:
    <h2><s:form action="LoginABC">
    请求路径:
    http://localhost:8080/hw/LoginABC

    下面的是有添加命名空间:
    struts.xml:

    <
    package name="default" namespace="/myUserInfo" extends="struts-default">
    login.jsp:
    <h2><s:form action="myUserInfo/LoginABC">
    请求路径:
    http://localhost:8080/hw/myUserInfo/LoginABC

    2. 关于拦截器

    拦截器做的事情是在Action执行之前和执行之后所做的事情,拦截器顾名思义就是会拦截一部分的action。在网上看到有一幅图能够很好的说明这个意思。
    image

    拦截器的定义是有几个级别的,看一下struts2中的源文件中定义的package中对于Interceptor的定义:

    <package name="struts-default" abstract="true">
            <interceptors>
                <interceptor name="workflow" class="com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor"/>
    … …
    <interceptor-stack name="defaultStack"> … … <interceptor-ref name="workflow"> <param name="excludeMethods">input,back,cancel,browse</param> </interceptor-ref> </interceptor-stack> </interceptors> <default-interceptor-ref name="defaultStack"/> </package>

    拦截器需要继承AbstractInterceptor ,并实现里面的init(初始化),Intercept(拦截逻辑,结尾处通过的invoke方法用于讲控制权转交给下个拦截器还是action.execute),destroy(Action.execute)执行后执行的动作。

    单独的拦截器需要和一个拦截器堆栈(interceptor-stack)关联才能真正被使用上。通过xml文件可以知道intercept-stack就是拦截器的一个组合,同时指定了拦截器的参数。作为“struts-default”的package,它使用的是defaultStack拦截器堆栈。我们一般在配置struts.xml的时候一般直接

    <package name="default" namespace="/myUserInfo" extends="struts-default">
    
    其实就是直接使用了defaultStack拦截器堆栈。

    关于拦截器,有篇博客写的比较清楚:http://www.cnblogs.com/kay/archive/2009/09/15/1566805.html,可以参看。

    3. 关于方法名称配置

    首先我要说明一点:VS的功能怎么这么强大!打开Struts.xml竟然能够智能感应节点属性。估计是自动和struts的schema关联上了。MyEclips的功能相对比较弱爆。

    <action name="LoginNone" class="mySpace.LoginAction" method="myNoneExecute">
        <result name="success">/helloWorld.jsp</result>
        <result name="error">/Error.jsp</result>
        <result name="none">/none.jsp</result>
    </action>
    

    如此配置即可实现Action和某个方法绑定.这样可以避免大量的之定义了execute方法的Action类.


       

  • 相关阅读:
    PHP常用函数大全
    php 数组相关的函数?
    谈谈对mvc 的认识?
    写出Zend 框架的目录结构,简单说明目录作用?
    PHP 的网站主要攻击方式有哪些?
    面试题随记
    二叉堆排序
    Mysql存储引擎
    (博客转载)创建对象的五种方式
    Java静态变量初始化的坑
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/3100423.html
Copyright © 2020-2023  润新知