我们在使用Struts2构建Rest架构的网站的时候,可以使用Struts2的Rest插件struts2-rest-plugin-2.3.15.1.jar。
假设我们希望以rest开头的包下的Action都是以Rest方式提供服务,Struts的配置文件中增加如下内容:
<constant name="struts.rest.namespace" value="/rest"></constant> <constant name="struts.convention.action.suffix" value="Controller" /> <constant name="struts.convention.action.mapAllMatches" value="true" /> <constant name="struts.convention.default.parent.package" value="default" /> <constant name="struts.convention.package.locators" value="rest,comm,action" /> <constant name="struts.convention.action.name.separator" value="_" /> <package name="default" namespace="/rest" extends="rest-default"> 等等
注意上面struts.convention.package.locators配置了多个值,是因为其他几个非Rest提供服务的action我也想使用Struts2的注解插件convention。
通过上面的配置,我们就可以在包含rest名称的package下面写Rest方式的Action了。
但是我要想在其他package(比如上面配置的comm、action)下面写普通的Struts2的Action是不是可以呢?答案是不行,你会发现全都变成了Rest方式处理了!
要解决这个问题,我们必须重写RestActionMapper这个类。
在getMapping这个方法中增加了几行代码如下:
if (!"/rest".equals(mapping.getNamespace())) return super.getMapping(request, configManager);
这里直接硬编码了/rest。代码见附件。
相关推荐
Struts2和REST是两种广泛应用于Web开发的技术。Struts2是一个基于MVC(Model-View-Controller)架构模式的Java框架,它极大地简化了Java Servlet的开发,提供了丰富的功能来构建可维护、可扩展的Web应用程序。REST...
Struts2 和 REST 整合是一个常见的Web开发实践,它允许开发者构建RESTful风格的Web服务,从而提高应用的可伸缩性和互操作性。在这个完整的例子中,我们将深入探讨Struts2框架如何与REST原则相结合,以及如何通过提供...
3. **Struts2与REST整合**:为了在Struts2中实现REST,需要配置struts.xml文件,定义Action的namespace和method映射,使它们与HTTP方法相对应。此外,可能还需要使用Struts2的Restful插件,该插件提供了自动映射HTTP...
将 Struts 2 项目下 struts2-convention-plugin-2.1.6.jar、struts2-rest-plugin-2.1.6.jar 两个 JAR 包复制到 Web 应用的 WEB-INF/lib 路径下。 由于 Struts 2 的 REST 插件还需要将提供 XML、JSON 格式的数据,...
以 Convention 插件为基础,Struts 2.1 又新增了 REST 插件,允许 Struts 2 应用对外提供 REST 服务。REST 插件也无需使用 XML 进行配置管理。Struts 2.1 通过 REST 插件完全可以提供让人和机器客户端共同使用的资源...
6. **返回数据格式**:默认情况下,Struts2 REST插件支持JSON和XML两种格式。如果需要返回其他格式,可以通过配置自定义结果类型或使用第三方库实现。 7. **处理URL参数**:RESTful URL中的路径参数和查询参数可以...
标签中提到的"struts2插件 rest例子"进一步强调了这个示例项目是关于Struts2 REST插件的实战应用,对于初学者或者需要在现有项目中添加REST功能的开发者来说,这是一个很好的学习和参考资源。 压缩包中的"RestDemo...
但在某些场景下,开发者可能需要同时使用Struts2和其他Servlet技术(如自定义Servlet或第三方Servlet),这时就会遇到Struts2与Servlet的共存问题。 #### 二、问题描述 当Struts2作为Web应用程序的前端控制器时,...
struts2-rest-plugin-2.1.6.jar
Struts2是一个流行的Java web框架,它主要用于构建和维护MVC(模型-视图-控制器)架构的应用程序。在这个“struts2-rest-sample”项目中,我们关注的是如何利用Struts2来实现RESTful API。REST(Representational ...
在本文中,我们将深入探讨如何使用Struts2的`ModelDriven`接口以及如何控制URL,以实现`struts2-rest-showcase-2.1.8.war`项目中的功能。 首先,`ModelDriven`接口是Struts2提供的一种设计模式,用于将Action类与...
Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java社区中被广泛应用,而REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,强调使用HTTP协议来实现资源的交互。...
struts2.1.6 convertion插件(即注释方式配置)的helloworld 默认调用index()方法 文档说明用struts.xml中标签设置值,好象不用也行 rest插件例子 默认调用 create()方法 struts2.1.6 vistor校验例子 都是我测试例子,...
- **Struts2**: Struts2支持更加灵活的单元测试方式。Action可以通过依赖注入的方式初始化,因此可以更容易地模拟出不同的测试场景。 #### 表单处理 - **Struts1**: 使用ActionForm来封装表单数据。ActionForm是一...
Struts2作为一款强大的MVC框架,提供了一种规范化的处理HTTP请求和响应的方式,而REST则是一种架构风格,用于设计网络应用程序,强调资源的识别和状态的改变。 首先,我们来看`struts2.0`。Struts2是Apache软件基金...
Struts2-showcase是一个用于演示和学习Apache Struts2框架功能的开源项目。这个压缩包“struts2-showcase.rar”包含了完整的源代码,旨在帮助开发者深入理解Struts2框架的工作原理及其各种特性。以下是对Struts2和...
引入Struts2的jar包有多种方式: - **Eclipse/IDEA等集成开发环境**:通过Maven或Gradle等构建工具管理依赖,添加对应的dependency。 - **手动添加**:将上述jar包复制到项目的lib目录下,并在构建路径中包含它们。...
Struts2提供了更多样化的校验方式,包括validate方法和基于XML的XWork验证框架,以及支持子对象的校验。 总的来说,Struts2相对于Struts1在灵活性、可测试性、输入处理和表现层控制上有所改进,使得开发更为高效和...