相关疑难解决方法(0)

如何防止参数绑定解释Spring 3.0.5中的逗号?

考虑以下控制器方法:

@RequestMapping(value = "/test", method = RequestMethod.GET)
public void test(@RequestParam(value = "fq", required = false) String[] filterQuery) {
    logger.debug(fq = " + StringUtils.join(filterQuery, "|"));
}
Run Code Online (Sandbox Code Playgroud)

以下是不同fq组合的输出:

  1. /test?fq=foo 结果是 fq = foo
  2. /test?fq=foo&fq=bar 结果是 fq = foo|bar
  3. /test?fq=foo,bar 结果是 fq = foo|bar
  4. /test?fq=foo,bar&fq=bash 结果是 fq = foo,bar|bash
  5. /test?fq=foo,bar&fq= 结果是 fq = foo,bar|

例3是问题.我希望(想要/需要)它输出fq = foo,bar.

我已经尝试用逗号来逃避逗号\并使用其他%3C工作.

如果我看一下HttpServletRequest对象的版本:

String[] fqs = request.getParameterValues("fq");
logger.debug(fqs = " + StringUtils.join(fqs, "|"));
Run Code Online (Sandbox Code Playgroud)

它打印预期的输出:fqs = foo,bar …

java data-binding spring spring-mvc

53
推荐指数
3
解决办法
2万
查看次数

Spring REST服务:从Request检索JSON

我正在Spring 3.1上构建一个REST服务.我正在使用@EnableWebMVC注释.由于我的服务只接受JSON请求,我还想将传入的请求转储到MongoDB集合中以进行日志记录(以及稍后的数据转换).我想访问原始JSON请求(我可以使用"@Content HttpServletRequest请求"作为方法参数在非spring实现上执行).

我是一个春天的新手.所以,请帮助我指明实现这一目标.谢谢!

更新:问题没有完全解决.只有我在GET上的测试才有效.它失败了POST.因此,取消选中接受的答案

问题是,即使我创建了一个HttpServletRequestWrapper,我也无法在处理并包装请求后转发请求.这是发生的事情:

拦截器:

public class DBLogInterceptor extends HandlerInterceptorAdapter {
    MyRequestWrapper requestWrapper;

    private final static Logger logger = Logger.getLogger(DBLogInterceptor.class);

    @Override
    public boolean preHandle(
            HttpServletRequest request,
            HttpServletResponse response,
            Object handler) throws Exception 
    {
        requestWrapper = new MyRequestWrapper(request);
        // Code removed, but it just dumps requestWrapper.getBody() into DB
        return super.preHandle(requestWrapper, response, handler);
    }
}
Run Code Online (Sandbox Code Playgroud)

HTTP POST服务方法

@RequestMapping(method = RequestMethod.POST, consumes="application/json", produces="application/json", value = "employee")
@ResponseBody
public String updateEntity(@RequestBody Employee emp) {
    // Do some DB Stuff. Anyway, the control …
Run Code Online (Sandbox Code Playgroud)

rest spring json

18
推荐指数
2
解决办法
6万
查看次数

标签 统计

spring ×2

data-binding ×1

java ×1

json ×1

rest ×1

spring-mvc ×1