整合struts2和spring3提供Restful服务

探讨问题的同胞们可以加QQ群:315309006

写这篇文章有点小矛盾,我个人比较喜欢用struts的方式提供action服务,springmvc虽然也很不错,但是其配置内容的巨大让笔者对它没什么好感,我最初想整合这俩东西的目的是为了用struts的action配置方式来提供spring的restful服务效果:


/**
 * @describe 输出单个的对象 GET /{classes}/{id}
 * @return
 */
@RequestMapping(method = RequestMethod.GET, value = "{classes}/{id}")
public abstract void selectOne();

/**
 * @desc 输出对象列表 GET /{classes}
 * @return
 */
@RequestMapping(method = RequestMethod.GET, value = "{classes}")
public abstract void selectList();

/**
 * @describe 删除对象 DELETE /{classes}/{id}
 * @return
 */
@RequestMapping(method = RequestMethod.DELETE, value = "{classes}/{id}")
public abstract void deleteOne();

/**
 * @describe 删除对象列表 DELETE /{classes}
 * @return
 */
@RequestMapping(method = RequestMethod.DELETE, value = "{classes}")
public abstract void deleteList();

/**
 * @describe 创建对象 POST /{classes}
 * @return
 */
@RequestMapping(method = RequestMethod.POST, value = "{classes}")
public abstract void create();

/**
 * @describe 修改对象 PUT /{classes}/{id}
 * @return
 */
@RequestMapping(method = RequestMethod.PUT, value = "{classes}/{id}")
public abstract void updateOne();

/**
 * @describe 修改对象列表 PUT /{classes}
 * @return
 */
@RequestMapping(method = RequestMethod.PUT, value = "{classes}")
public abstract void updateList();


下面一端代码是我想达到的最终目的:

@RequestMapping(method = RequestMethod.GET, value = "entity/{classes}/{id}")
public void selectOne() {
	// parameterMap中包含url中的所有参数值(包括?param1=*)
	String clazz = parameterMap.get("classes").toString();
	String id = parameterMap.get("id").toString();
	// resultMap是响应请求的返回值
	resultMap.put("classes", clazz);
	resultMap.put("id", id);
}

struts配置想要达到的效果:


<package name="v1" namespace="/v1" extends="json-default">
				
		<global-results>
			<result name="json" type="json">
				<param name="contentType">text/html</param>
				<param name="root">resultMap</param>
			</result>
			<result name="xml" type="xslt">
				<param name="stylesheetLocation">/WEB-INF/template.xslt</param>
				<param name="exposedValue">resultMap</param>
				<param name="noCache">true</param>
			</result>
		</global-results>
		
		<action name="entity**" class="action.EntityAction" />
		
	</package>

返回结果可以通过"Content-Type"来控制返回内容的格式:

1.application/xml返回xml格式数据

2.application/json返回json格式数据

下面是curl测试结果:

探讨问题的同胞们可以加QQ群:315309006



转载于:https://my.oschina.net/ehofy/blog/177374

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值