zoukankan      html  css  js  c++  java
  • 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类.


       

  • 相关阅读:
    迭代器特性
    没有一代人的青春是容易的『白岩松,演讲』
    编程趣话
    重新给PPT排序
    打印长图
    罗永浩答网友问:“能跟我们分享一件印象深刻至今你都记得的牛逼么?”
    活成加菲这样真是绝了!加菲语录大搜罗!
    加菲猫经典语录收录
    那些难以忘记的加菲猫经典语录
    做好这5点基本要求 才能算一个合格的HTML5动画
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/3100423.html
Copyright © 2011-2022 走看看