zoukankan      html  css  js  c++  java
  • Struts2注解配置之@Namespace(四)

    今天开始学习@Namespace注解。

    还是先看一段代码:

    1. package com.example.actions;  
    2.   
    3. import org.apache.struts2.convention.annotation.Action;  
    4. import org.apache.struts2.convention.annotation.Namespace;  
    5.   
    6. import com.opensymphony.xwork2.ActionSupport;  
    7.   
    8. @Namespace("/custom")  
    9. public class HelloWorld6 extends ActionSupport {  
    10.     @Action("/H6/url")  
    11.     public String execute() {  
    12.         return SUCCESS;  
    13.     }  
    14.   
    15.     @Action("url")  
    16.     public String doSomething() {  
    17.         return SUCCESS;  
    18.     }  
    19. }  
    • 名称空间注释允许操作类名称空间改变而不是使用Convention Plugin约定的Java包的名称。
    仔细分析上述代码。HelloWorld6的包名为package com.example.actions;。如果没有@Namespace("/custom")注解,按照Convention Plugin的约定,会将此包作为根包。对应Action URL的命名空间为“/”。而有@Namespace("/custom")注解的情况下,HelloWorld6的命名空间被改成了“ /custom”。但是我们在浏览器中输入http://应用服务器ip:端口/应用/H6/url访问时,没有任何问题,还可以跳转到“/H6 /url.jsp”页面。
    这是什么原因呢?
    关键在于@Action("/H6/url")。此处“/H6/url”是对Action的名称空间进行了完全限定。实验证明@Namespace("/custom")注解对名称空间进行完全限定的不起作用。
    • 针对某个Action类进行@Namespace注释后,该注释的效果将应用于该类中所有未完全限定的action URLs

    试着在浏览器中输入http://应用服务器ip:端口/应用/url访问时,报出了错误提示信息。将@Namespace("/custom")注解去 掉,重新启动服务,再次访问,成功!再次将@Namespace("/custom")注解加上,重新启动服务,访问,失败。
    此回合操作验证了一个问题,@Namespace注解已经作用到doSomething()方法上。
    仔细观察每一个细节。该方法上有@Action("url")注解。它“url”的前面没有“/”。这是未完全限定的action URL啊。这样正好说明了针对某个Action类进行@Namespace注释后,该注释的效果将应用于该类中所有未完全限定的action URLs。
    这样我们在浏览器中输入http://应用服务器ip:端口/应用/cutsom/url访问时,成功。跳转页面为“/custom/url.jsp”。

  • 相关阅读:
    【记录】百度统计监控博客园
    【织梦】网站地图创建和美化
    【IDE】JRebel热部署实现
    【字体图标】 Font Awesome字体图标如何使用?
    【Eureka】springCloud项目搭建
    java 服务定期卡顿、卡死,服务在运行没挂,日志疯狂打印,接口不能用
    idea springboot 无法启动 Unable to start EmbeddedWebApplicationContext
    POI导出xlsx
    mysql decimal设置默认值0 无效,设置后自动变为null(通过Navicat可视化工具操作)
    Log file ./ib_logfile2 is of different size 268435456 bytes than other log files 50331648 bytes!
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/4607436.html
Copyright © 2011-2022 走看看