在Spring MVC 3.0中使用下划线绑定请求参数

时间:2012-11-06 14:42:56

标签: java spring spring-mvc data-binding

考虑以下要求:必须使用Spring MVC 3.0将请求参数绑定到对象。请求参数包含下划线(例如http://myurl:80/x?param_one=1&param_two=2)。这些参数应绑定到以下对象:

class MyObject {
    private Integer paramOne;
    private Integer paramTwo;

    ...
}

你会怎么做呢?

重要提示:认为可能存在大量此类参数和对象,并且在包含下划线的对象上定义setter方法并不是一种好习惯。

2 个答案:

答案 0 :(得分:3)

Rajith的答案专门用于控制器方法,并没有解决您最初询问如何将下划线参数绑定到对象的问题。

我目前所采用的hacky解决方案是完成您实际要求的是以这种方式命名我的二传手:

public void setProject_ids(List<Long> project_ids) {

请注意,RequestParam不能应用于方法,并且在应用于此setter的参数时不起作用。

答案 1 :(得分:1)

您可以使用@RequestMapping属性

执行此操作
@RequestParam(value = "param_One") String paramOne,@RequestParam(value = "param_two") String paramTwo

将此添加到方法签名中

但是对于最佳实践,最好传递相同的变量名称