`
Rainbow702
  • 浏览: 1078219 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类

struts2 的 @Result 和 @ResultPath 联合使用

阅读更多

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

<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

 

PS:以上的结果,均以“Action”的namespace为“/”  为前提,即url应该以如下这种情况的:

http://xxx.xxx.xxx.xxx:port/web工程名/file2!upload

 对于action的namespace怎么设定,大家查看一下官网说明:http://struts.apache.org/docs/convention-plugin.html#ConventionPlugin-Codebehindhelloworld

 

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

上面的

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

 

分享到:
评论

相关推荐

    struts2中result类型之redirect

    综上所述,`Redirect`类型的`Result`在Struts2框架中扮演着重要角色,它是控制Web应用程序流程,确保用户体验和系统稳定性的有效手段。在实际开发中,开发者需要根据需求选择合适的`Result`类型来达到最佳的效果。

    struts2 result配置详解

    Struts2 框架提供了多种 Result 配置类型,每种类型都有其特定的功能和应用场景。 1. Chain Result 配置 Chain Result 配置用于将一个 Action 的执行结果与另一个 Action 的执行结果链式连接起来。这种配置类型...

    struts2 Result类型

    通过深入研究这些内容,你可以更全面地掌握Struts2 Result类型的使用和扩展方法,提升你的Web开发技能。 总之,Struts2 Result类型是控制应用程序流程的重要组成部分,理解并熟练运用它能帮助我们构建更加灵活和...

    struts2 result转向到action

    ### Struts2 Result 转向到 Action 的深入解析 #### 一、基本概念与应用场景 **Struts2** 是一款流行的 Java Web 开发框架,它支持多种开发模式(如 MVC),并提供了一系列用于简化 Web 应用程序开发的功能。在 ...

    struts2 result type 介绍

    在Struts2中,Result Type是由`struts-default.xml`配置文件中的`&lt;package&gt;`元素的`defaultResultType`属性指定的,默认情况下,这个值通常是“dispatcher”,意味着Action完成后会使用Dispatcher Result来渲染JSP...

    struts2的result标签使用

    让我们深入探讨一下`Result`标签的使用以及在Struts2框架中的作用。 ### 1. Struts2框架概述 Struts2框架基于MVC设计模式,主要由四部分组成:Action、ActionMapping、Result和Interceptor。Action负责处理用户的...

    struts2 action 返回json方法(一)源码

    如果需要控制哪些属性被包含在JSON中,或者需要额外的JSON配置,可以在Action类上使用注解`@Results`和`@Result`。例如,只返回`message`属性: ```java @Results({ @Result(name="success", type="json", ...

    struts2 xslt result 实现

    于是就研究使用Struts2的XSLT result方式来做页面显示。 网上相关的内容非常的少,我也研究了好久才玩转的。一开始总是有一些莫名其妙的问题出现,但最后基本上都是和配置相关的比较多。现在这个例子是整个工程项目...

    Struts2中的Result的使用

    Struts2中的Result的使用类型有很多种,以及各种结果集类型的应用都有涉及(我们老师上课讲的讲义,希望对初学WEB的同学有所帮助)

    struts2中result类型之redirectAction

    通过分析`redirectActionTest`文件,我们可以深入理解Struts2中`redirectAction` Result类型的实现和应用场景,包括配置、工作流程以及优缺点。实践这些知识可以帮助我们更有效地构建和维护Struts2驱动的Web应用。

    struts2中的result的type类型

    struts2 跳转类型 result type chain dispatcher redirect redirect action

    Struts2 Json示例(Maven项目)

    这个示例项目不仅展示了如何在Struts2中使用JSON,还演示了如何通过Maven进行项目的构建和管理。通过学习这个例子,开发者可以更好地理解Struts2与JSON的集成,以及如何利用Maven来简化Java项目的构建流程。

    struts2jar.zip

    7. **Action的注解配置**:Struts2支持通过注解来简化配置,如@Action、@Result等。 8. **.struts2-convention-plugin**:这个插件允许开发者使用约定优于配置的方式开发,减少XML配置。 9. **国际化和本地化**:...

    难经3:Struts2,拦截器拦不住Result?

    在Struts2框架中,拦截器是实现业务逻辑和控制逻辑之间解耦的重要机制,而Result则负责处理动作(Action)执行后的返回结果,如视图渲染或跳转。 **Struts2 框架概述** Struts2是一个基于MVC设计模式的Java Web开发...

    Struts2 Result类型

    默认情况下,如果未指定Result类型,Struts2将使用Dispatcher Result。 3. **FreeMarker Result (type="freemarker")** FreeMarker Result用于处理FreeMarker模板文件。FreeMarker是一种强大的模板引擎,可以动态...

    Struts2学习资源Result part1.rar

    默认情况下,如果未明确指定Result类型,那么Struts2会默认使用"dispatcher",它将请求分发到一个JSP页面。然而,Struts2提供了多种Result类型,以满足不同场景的需求。 1. **dispatcher**: 这是最常见的Result类型...

    Struts2框架及注释和用法

    Struts2允许在Action类和Action方法上使用注解,简化配置。例如,`@Action(value="login")`用于指定Action的名称,`@Results`注解可以定义多个可能的结果。此外,`@FieldAware`和`@Validated`注解用于字段验证。 **...

    struts2中常用Result类型(type)的用法和出现的问题

    Struts2 中常用 Result 类型(type)的用法和出现的问题 Struts2 中的 Result 类型(type)是指在 Struts2 框架中用于确定 action 执行结果的方式。常用的 Result 类型有 dispatcher、redirect 和 chain 三种。这三...

    struts2jar包

    在使用Struts2进行开发之前,我们需要先将Struts2的jar包引入到项目中,这样才能利用其提供的API和服务。 Struts2的核心jar包通常包括以下几个部分: 1. **struts2-core.jar**:这是Struts2的核心库,包含了框架的...

    Struts2 注解 Demo

    Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中广泛使用,极...通过`Struts2Demo`实例,你可以掌握如何创建和使用这些注解,以及如何在实际项目中应用它们,从而提升你的Java Web开发技能。

Global site tag (gtag.js) - Google Analytics