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的页面,则能返回正确的页面,所这里需要这一点

  • 相关阅读:
    使用Distinct()内置方法对List集合的去重 问题
    TCP连接与HTTP请求
    ASP.NET MVC 使用 Authorize 属性过滤器验证用户是否已登录
    C#进阶系列——WebApi 跨域问题解决方案:CORS
    关于设计模式的六大原则
    C# WebApi 接口传参详解
    数据库数据流量太大-问题诊断
    docker的build生成镜像和启动container
    docker生成dotnet core镜像
    NET Core 源码浏览站点工具
  • 原文地址:https://www.cnblogs.com/oscar1987121/p/6368914.html
Copyright © 2011-2022 走看看