Struts2注解配置之@Namespace(四)
2015-06-29 14:37
525 查看
今天开始学习@Namespace注解。
还是先看一段代码:
[java] view plaincopy
package com.example.actions;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import com.opensymphony.xwork2.ActionSupport;
@Namespace("/custom")
public class HelloWorld6 extends ActionSupport {
@Action("/H6/url")
public String execute() {
return SUCCESS;
}
@Action("url")
public String doSomething() {
return SUCCESS;
}
}
名称空间注释允许操作类名称空间改变而不是使用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”。
还是先看一段代码:
[java] view plaincopy
package com.example.actions;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import com.opensymphony.xwork2.ActionSupport;
@Namespace("/custom")
public class HelloWorld6 extends ActionSupport {
@Action("/H6/url")
public String execute() {
return SUCCESS;
}
@Action("url")
public String doSomething() {
return SUCCESS;
}
}
名称空间注释允许操作类名称空间改变而不是使用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”。
相关文章推荐
- JAVA设计模式之单例模式
- java 解析JSON对象与数组
- java使用String.split方法时要注意的问题
- java学习之旅41--面向对象_14_继承_super_构造器的调用_继承的内存分析(非常重要)
- 第二章 Spring MVC入门 —— 跟开涛学SpringMVC
- java异常问题
- WMB入门之十:Java Compute节点
- LeetCode_68---Text Justification
- java查看IP所属地区及哪个运营商
- 12306全自动验证码
- Java并发编程:线程池的使用
- java serializable深入了解
- Java缓存Ehcache-Ehcache的Cache预热机制及代码实现(Cache Warming for multi-tier Caches)
- JavaWeb学习笔记——开发动态WEB资源(二)HelloWord
- JAVA_OPTS各参数的含意及配置
- Spring配置文件中突然出现异常Referenced file contains errors
- java中泛型小结
- SSI(Struts2, Spring, iBatis)框架整合小结
- 【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传
- Spring定时任务的几种实现