• 学习Struts2的个人疑惑及问题解决


    刚开始学习SSH框架中Struts2时,个人疑惑以及一些问题总结一下。

    1package节点namespace属性值决定访问路径问题      

      namespace不写或写namespace=""代表含义都一样

      namespace="/"表示根命名空间,只能处理“项目名/actionName.action”的URl请求。

      假设有个name="index"的action  即名为index.action,项目名为p1。namespace值及访问路径如下:

    Namespace值

    访问路径

    空或""

    p1/index.action或p1/x/index.action等

    /

    p1/index.action  (只能这一种)

    /x

    p1/x/index.action

    /x/y

    p1/x/y/index.action

     

      如下struts.xml配置

    <struts>

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

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

        <action name="index">

          <result>/Namespace.jsp</result>

        </action>

      </package>

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

        <action name="index">

          <result>/Namespace.jsp</result>

        </action>

      </package>

    </struts>

      namespace是什么?想访问的action前面就应该加上什么,比如这里就是/front/index.action

        namespace等于空,意味着:只要在url敲index.action不管在哪里敲,路径多么深,只要最后是“index.action”就可以访问这个action。

      所以namespace意味着:只要找到一个index.action,没有找到精确的对应的namespace,全部都交给namespace为空的这个package去处理,所以这个package囊括了其他所有package处理不了的action。

    资料参考:

    https://zhidao.baidu.com/question/331902753.html

    http://blog.csdn.net/menghuannvxia/article/details/47169991 这个网址对于namespace=""和namespace="/"的描述有错误。

    http://www.cnblogs.com/hongten/archive/2011/07/29/2121450.html

    2actionresult节点name属性值命名方式问题 

      个人理解:系统根据action节点中的method属性值对应的方法中的返回结果,在result中查找相应结果的映射,转向指定界面。所以result中name值只要和method属性值对应的方法中的返回值相同即可。

    3src下的类什么时候加载

          用户提交表单时 会有一个action属性,根据action值,在struts.xml中查找相应name的action配置,根据配置找到相应的类,执行method属性对应的方法,根据方法返回值,在result中查找相应结果的映射,转向指定界面。

    4struts.xml配置及action配置

    action配置中,配置项的默认值:

       1) 如果没有指定Action的class,默认值为ActionSupport。

       2) 如果没有指定Action的method属性,默认值为execute()方法。

       3) 如果没有指定result的name属性,默认值为”success”

    资料参考:

    http://www.cnblogs.com/kay/archive/2007/11/28/976120.html

    http://blog.csdn.net/ldl420783321/article/details/7546607

     

    欢迎评论,批评指正。

  • 相关阅读:
    [原]Linux 命令行浏览器
    Linux 命令行浏览器
    [原]Linux 命令行 发送邮件
    Linux 命令行 发送邮件
    [原]Linux 修改时区
    Linux 修改时区
    [原]Ubuntu 下安装Mongodb
    离线解密RDP凭证密码
    [Win]权限维持
    Nginx反向代理
  • 原文地址:https://www.cnblogs.com/jinghun/p/6443847.html
Copyright © 2020-2023  润新知