zoukankan      html  css  js  c++  java
  • Struts2学习笔记

    在struts.xml配置文件当中packet有一个属性字段namespace,这里必须详细了解一下,他的作用是可以让不同的packet里面包含相同action名称

    一般情况,如果没有namespace属性字段的默认为"",会被最后才搜索

    如果有两个相同的package,他们里面有相同的方法,有namespace的action会优先被搜索,在下面的代码当中,有两个package,一个是default,另一个是test1,大家里面都有Hello的action,如果Hello的action被调用,test1会被执行优先于default,意思是,程序会先搜索test1里面的Hello的action,所以这里的结果是会返回Hello2.jsp而不是Hello.jsp

    (注意:struts.xml配置文件中的package是由上往下读取的,被继承的package要先于继承的package,意思就是编写这个配置文件时父级别要优先于子级别的package)

    另外要主要的是这个namespace所指的在这个web app的根目录下的一个文件路径,namespace="/test"代表在根目录下的/test里面。所以以下的 代码表示返回的Hello3.jsp在Web App下的/test/里面

    最后还有一个要点就,如下面例子,请求http://localhost:8080/Strut2Namespace/test/Hello会出现404的结果,

    如果修改一下,在Hello.jsp前加上"/"代表相对路径的意思,则能显示Hello3.jsp的页面,我们来分析一下这个案例

    按照规则,先读取名为test2的package然后然后未能找到Hello的action,则开始读取默认的package,发现有Hello的action,则返回成功页面,Hello.jsp,因为这里默认的路径是"",所以为根目录,但在根目录下根本不能找到这个页面,则报404,如果改成/Hello.jsp,则返回的页面路径从test开始的Hello.jsp,这样在test下能找到Hello.jsp的页面,则能返回正确的页面,所这里需要这一点

  • 相关阅读:
    hibernate--could not initialize proxy
    20160509-hibernate--继承映射
    CF1111C Creative Snap
    CF1097D Makoto and a Blackboard
    CF1091D New Year and the Permutation Concatenation
    CF1096D Easy Problem
    CF1076E Vasya and a Tree
    CF1081C Colorful Bricks
    CF1081E Missing Numbers
    CF1093D Beautiful Graph
  • 原文地址:https://www.cnblogs.com/oscar1987121/p/6368914.html
Copyright © 2011-2022 走看看