java控制器接收请求参数_Spring MVC - 如何在Spring控制器的地图中获取所有请求参数?...

问题

示例网址:

../search/?attr1=value1&attr2=value2&attr4=value4

我不知道attr1,att2和attr4的名称。

我希望能够做类似的事情(或类似的,不关心,只要我有权访问请求参数名称的 Map - >值:

@RequestMapping(value = "/search/{parameters}", method = RequestMethod.GET)

public void search(HttpServletRequest request,

@PathVariable Map allRequestParams, ModelMap model)

throws Exception {//TODO: implement}

如何使用Spring MVC实现这一目标?

#1 热门回答(250 赞)

虽然其他答案是正确的,但它肯定不是直接使用HttpServletRequest对象的"Spring方式"。如果你熟悉Spring MVC,答案实际上是quite simple and what you would expect。

@RequestMapping(value = {"/search/", "/search"}, method = RequestMethod.GET)

public String search(

@RequestParam Map allRequestParams, ModelMap model) {

return "viewName";

}

#2 热门回答(30 赞)

编辑

已经指出存在(at least as of 3.0)纯Spring MVC机制,通过该机制可以获得该数据。我不会在这里详细说明,因为它是另一个用户的答案。有关详细信息,请参阅@AdamGent's answer,不要忘记对其进行投票。

在Spring 3.2文档中,这个机制在RequestMappingJavaDoc页面和RequestParamJavaDoc页面上都有提及,但之前只在RequestMapping页面中提到过。在2.5文档中没有提到这种机制。

这可能是大多数开发人员的首选方法,因为它删除了(至少这个)与servlet-api jar定义的HttpServletRequest对象的绑定。

/编辑

你应该可以访问请求查询字符串viarequest.getQueryString()。

除了getQueryString之外,还可以从request.getParameterMap()作为Map检索查询参数。

#3 热门回答(12 赞)

HttpServletRequest对象已经提供了参数映射。有关更多详细信息,请参见request.getParameterMap()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值