对于使用了 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
相关推荐
综上所述,`Redirect`类型的`Result`在Struts2框架中扮演着重要角色,它是控制Web应用程序流程,确保用户体验和系统稳定性的有效手段。在实际开发中,开发者需要根据需求选择合适的`Result`类型来达到最佳的效果。
Struts2 框架提供了多种 Result 配置类型,每种类型都有其特定的功能和应用场景。 1. Chain Result 配置 Chain Result 配置用于将一个 Action 的执行结果与另一个 Action 的执行结果链式连接起来。这种配置类型...
通过深入研究这些内容,你可以更全面地掌握Struts2 Result类型的使用和扩展方法,提升你的Web开发技能。 总之,Struts2 Result类型是控制应用程序流程的重要组成部分,理解并熟练运用它能帮助我们构建更加灵活和...
### Struts2 Result 转向到 Action 的深入解析 #### 一、基本概念与应用场景 **Struts2** 是一款流行的 Java Web 开发框架,它支持多种开发模式(如 MVC),并提供了一系列用于简化 Web 应用程序开发的功能。在 ...
在Struts2中,Result Type是由`struts-default.xml`配置文件中的`<package>`元素的`defaultResultType`属性指定的,默认情况下,这个值通常是“dispatcher”,意味着Action完成后会使用Dispatcher Result来渲染JSP...
让我们深入探讨一下`Result`标签的使用以及在Struts2框架中的作用。 ### 1. Struts2框架概述 Struts2框架基于MVC设计模式,主要由四部分组成:Action、ActionMapping、Result和Interceptor。Action负责处理用户的...
如果需要控制哪些属性被包含在JSON中,或者需要额外的JSON配置,可以在Action类上使用注解`@Results`和`@Result`。例如,只返回`message`属性: ```java @Results({ @Result(name="success", type="json", ...
于是就研究使用Struts2的XSLT result方式来做页面显示。 网上相关的内容非常的少,我也研究了好久才玩转的。一开始总是有一些莫名其妙的问题出现,但最后基本上都是和配置相关的比较多。现在这个例子是整个工程项目...
Struts2中的Result的使用类型有很多种,以及各种结果集类型的应用都有涉及(我们老师上课讲的讲义,希望对初学WEB的同学有所帮助)
通过分析`redirectActionTest`文件,我们可以深入理解Struts2中`redirectAction` Result类型的实现和应用场景,包括配置、工作流程以及优缺点。实践这些知识可以帮助我们更有效地构建和维护Struts2驱动的Web应用。
struts2 跳转类型 result type chain dispatcher redirect redirect action
这个示例项目不仅展示了如何在Struts2中使用JSON,还演示了如何通过Maven进行项目的构建和管理。通过学习这个例子,开发者可以更好地理解Struts2与JSON的集成,以及如何利用Maven来简化Java项目的构建流程。
7. **Action的注解配置**:Struts2支持通过注解来简化配置,如@Action、@Result等。 8. **.struts2-convention-plugin**:这个插件允许开发者使用约定优于配置的方式开发,减少XML配置。 9. **国际化和本地化**:...
在Struts2框架中,拦截器是实现业务逻辑和控制逻辑之间解耦的重要机制,而Result则负责处理动作(Action)执行后的返回结果,如视图渲染或跳转。 **Struts2 框架概述** Struts2是一个基于MVC设计模式的Java Web开发...
默认情况下,如果未指定Result类型,Struts2将使用Dispatcher Result。 3. **FreeMarker Result (type="freemarker")** FreeMarker Result用于处理FreeMarker模板文件。FreeMarker是一种强大的模板引擎,可以动态...
默认情况下,如果未明确指定Result类型,那么Struts2会默认使用"dispatcher",它将请求分发到一个JSP页面。然而,Struts2提供了多种Result类型,以满足不同场景的需求。 1. **dispatcher**: 这是最常见的Result类型...
Struts2允许在Action类和Action方法上使用注解,简化配置。例如,`@Action(value="login")`用于指定Action的名称,`@Results`注解可以定义多个可能的结果。此外,`@FieldAware`和`@Validated`注解用于字段验证。 **...
Struts2 中常用 Result 类型(type)的用法和出现的问题 Struts2 中的 Result 类型(type)是指在 Struts2 框架中用于确定 action 执行结果的方式。常用的 Result 类型有 dispatcher、redirect 和 chain 三种。这三...
在使用Struts2进行开发之前,我们需要先将Struts2的jar包引入到项目中,这样才能利用其提供的API和服务。 Struts2的核心jar包通常包括以下几个部分: 1. **struts2-core.jar**:这是Struts2的核心库,包含了框架的...
Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中广泛使用,极...通过`Struts2Demo`实例,你可以掌握如何创建和使用这些注解,以及如何在实际项目中应用它们,从而提升你的Java Web开发技能。