`
swanky_yao
  • 浏览: 31660 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2 Rest方式和非Rest方式共存

阅读更多

       我们在使用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。代码见附件。

 

 

 

分享到:
评论
1 楼 likeykey 2013-08-15  
有配置好的例子么 给我发一个呗  我配置怎么有问题 252136866@qq.com 谢谢

相关推荐

    struts2+rest简单实例

    Struts2和REST是两种广泛应用于Web开发的技术。Struts2是一个基于MVC(Model-View-Controller)架构模式的Java框架,它极大地简化了Java Servlet的开发,提供了丰富的功能来构建可维护、可扩展的Web应用程序。REST...

    struts2_rest整合完整例子

    Struts2 和 REST 整合是一个常见的Web开发实践,它允许开发者构建RESTful风格的Web服务,从而提高应用的可伸缩性和互操作性。在这个完整的例子中,我们将深入探讨Struts2框架如何与REST原则相结合,以及如何通过提供...

    Struts2+rest简单实例

    3. **Struts2与REST整合**:为了在Struts2中实现REST,需要配置struts.xml文件,定义Action的namespace和method映射,使它们与HTTP方法相对应。此外,可能还需要使用Struts2的Restful插件,该插件提供了自动映射HTTP...

    struts2的rest风格插件实例

    将 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 格式的数据,...

    Struts2-rest插件(有注释)

    以 Convention 插件为基础,Struts 2.1 又新增了 REST 插件,允许 Struts 2 应用对外提供 REST 服务。REST 插件也无需使用 XML 进行配置管理。Struts 2.1 通过 REST 插件完全可以提供让人和机器客户端共同使用的资源...

    Struts2 支持REST 代码

    6. **返回数据格式**:默认情况下,Struts2 REST插件支持JSON和XML两种格式。如果需要返回其他格式,可以通过配置自定义结果类型或使用第三方库实现。 7. **处理URL参数**:RESTful URL中的路径参数和查询参数可以...

    struts2-restDmo,struts2下的rest插件小例子

    标签中提到的"struts2插件 rest例子"进一步强调了这个示例项目是关于Struts2 REST插件的实战应用,对于初学者或者需要在现有项目中添加REST功能的开发者来说,这是一个很好的学习和参考资源。 压缩包中的"RestDemo...

    struts2和servlet的共存问题

    但在某些场景下,开发者可能需要同时使用Struts2和其他Servlet技术(如自定义Servlet或第三方Servlet),这时就会遇到Struts2与Servlet的共存问题。 #### 二、问题描述 当Struts2作为Web应用程序的前端控制器时,...

    struts2-rest-plugin-2.1.6.jar

    struts2-rest-plugin-2.1.6.jar

    struts2-rest-sample:使用 struts2 讨论 rest api 实现基础的示例项目

    Struts2是一个流行的Java web框架,它主要用于构建和维护MVC(模型-视图-控制器)架构的应用程序。在这个“struts2-rest-sample”项目中,我们关注的是如何利用Struts2来实现RESTful API。REST(Representational ...

    strusts2包struts2-rest-showcase-2.1.8.war实现ModelDriven接口项目心得

    在本文中,我们将深入探讨如何使用Struts2的`ModelDriven`接口以及如何控制URL,以实现`struts2-rest-showcase-2.1.8.war`项目中的功能。 首先,`ModelDriven`接口是Struts2提供的一种设计模式,用于将Action类与...

    struts2.1+ rest

    Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java社区中被广泛应用,而REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,强调使用HTTP协议来实现资源的交互。...

    struts2.1.6 convertion,rest两插件的例子

    struts2.1.6 convertion插件(即注释方式配置)的helloworld 默认调用index()方法 文档说明用struts.xml中标签设置值,好象不用也行 rest插件例子 默认调用 create()方法 struts2.1.6 vistor校验例子 都是我测试例子,...

    struts1和struts2的区别

    - **Struts2**: Struts2支持更加灵活的单元测试方式。Action可以通过依赖注入的方式初始化,因此可以更容易地模拟出不同的测试场景。 #### 表单处理 - **Struts1**: 使用ActionForm来封装表单数据。ActionForm是一...

    struts2.0+rest

    Struts2作为一款强大的MVC框架,提供了一种规范化的处理HTTP请求和响应的方式,而REST则是一种架构风格,用于设计网络应用程序,强调资源的识别和状态的改变。 首先,我们来看`struts2.0`。Struts2是Apache软件基金...

    struts2-showcase.rar

    Struts2-showcase是一个用于演示和学习Apache Struts2框架功能的开源项目。这个压缩包“struts2-showcase.rar”包含了完整的源代码,旨在帮助开发者深入理解Struts2框架的工作原理及其各种特性。以下是对Struts2和...

    struts2jar包

    引入Struts2的jar包有多种方式: - **Eclipse/IDEA等集成开发环境**:通过Maven或Gradle等构建工具管理依赖,添加对应的dependency。 - **手动添加**:将上述jar包复制到项目的lib目录下,并在构建路径中包含它们。...

    Struts1和Struts2的区别和对比

    Struts2提供了更多样化的校验方式,包括validate方法和基于XML的XWork验证框架,以及支持子对象的校验。 总的来说,Struts2相对于Struts1在灵活性、可测试性、输入处理和表现层控制上有所改进,使得开发更为高效和...

Global site tag (gtag.js) - Google Analytics