struts2 的 @Result 和 @ResultPath 联合使用_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > struts2 的 @Result 和 @ResultPath 联合使用

struts2 的 @Result 和 @ResultPath 联合使用

 2015/5/14 10:10:31  Rainbow702  程序员俱乐部  我要评论(0)
  • 摘要:对于使用了struts2的convention插件进行开发时,我们知道可以通过以下的配置项来约定所有的Result视图的路径:<constantname="struts.convention.result.path"value="/WEB-INF/content/"/>上面的value就是convention插件中的默认值,当然,我们可以改成任意我们想要的值。这样的话,当我们声明以下的@Result时:@Result(name="success",location="my
  • 标签:使用 struts

对于使用了 struts2 的?convention 插件进行开发时,我们知道可以通过以下的配置项来约定所有的 Result 视图的路径:

class="xml"><constant name="struts.convention.result.path" value="/WEB-INF/content/"/>

?上面的value就是?convention 插件 中的默认值,当然,我们可以改成任意我们想要的值。

这样的话,当我们声明以下的@Result时:

@Result(name = "success", location = "my-upload.jsp")

?系统就会试着去访问如下的文件:

/WEB-INF/content/my-upload.jsp

?如果存在,那就OK,不然就会报404的错误

?

对于result path,我也可以使用@ResultPath进行个别定制,如:

@Results(@Result(name = "success", location = "my-upload.jsp"))
@ResultPath("/jsp")
public class File2Action {

	public String upload() {
		System.out.println("uploading files...");
		return "success";
	}
}

?这样一来,虽然“struts.convention.result.path”的值为“/WEB-INF/content/”,但是我们这边使用了@ResultPath 注解对其进行了覆盖,所以,这边实际访问的页面为:

/jsp/my-upload.jsp

?

不过,有一点,我们需要特别注意:

上面的

location = "my-upload.jsp"

?中,“my-upload.jsp” 没有以 “/” 开头,所以,也就是说它是一个相对路径,这样,它才会基于@ResultPath中的路径去找相应的文件。

如果,我们将其修改成如下:

location = "/my-upload.jsp"

?即,让“my-upload.jsp”以"/"开头,这时候,它就是一个绝对路径,这个时候,它不是会基于@ResultPath中的路径去搜索相关的文件的,而是直接基于web工程的根路径去搜索相关文件。

也就是说,假设你的web工程的名字就 test,那么此时它访问的页面为:

http://xxx.xxx.xxx.xxx:port/test/my-upload.jsp

?

发表评论
用户名: 匿名