Java 具有别名参数名称以接受Url编码的表单数据值
在我的SpringWeb应用程序中,我有一个API,它接受内容类型为Java 具有别名参数名称以接受Url编码的表单数据值,java,spring,spring-boot,httprequest,x-www-form-urlencoded,Java,Spring,Spring Boot,Httprequest,X Www Form Urlencoded,在我的SpringWeb应用程序中,我有一个API,它接受内容类型为application/x-www-form-urlencoded的请求 @RequestMapping(value = "/do-it", method = {RequestMethod.POST}) public String test(@ModelAttribute("request")RequestDTO request,HttpServletRequest httpServletRequest,
application/x-www-form-urlencoded
的请求
@RequestMapping(value = "/do-it", method = {RequestMethod.POST})
public String test(@ModelAttribute("request")RequestDTO request,HttpServletRequest
httpServletRequest, Map<String, Object> model, RedirectAttributes redirectAttributes){
.....
}
此实现工作正常,所有请求参数都按照预期映射到请求dto。但是,现在我需要接受以下模式中的字段请求
参数一,参数二
我明白,在我的请求dto中的字段上使用@JsonProperty注释在我的情况下是行不通的,因为请求不是application/json类型
我发现解决这个问题的唯一方法是创建如下新的setter(在我看来,这在命名约定方面很难看)
有人能帮我找到更好的方法来完成这件事吗?我无法更改原始请求dto中的参数名称
谢谢你 我能够完成这项工作。感谢@neetash对我的指导 我所需要的只是一个定制的HandlerMethodArgumentResolver,将post请求主体数据映射到我想要获取的对象 我按照下面的链接教程来实现它。它包含创建HandlerMethodArgumentResolver需要知道的每一件事
我能够完成这项工作。感谢@neetash对我的指导 我所需要的只是一个定制的HandlerMethodArgumentResolver,将post请求主体数据映射到我想要获取的对象 我按照下面的链接教程来实现它。它包含创建HandlerMethodArgumentResolver需要知道的每一件事
回答了你的问题吗?嗯,这很有帮助,但不是直接回答。我能够从那里找到一个关键字,它是“参数解析器”。然后在谷歌上搜索了一下,找到了一种完成我工作的方法。我会加上它作为回答你的问题的答案?好吧,它有帮助,而不是直接的。我能够从那里找到一个关键字,它是“参数解析器”。然后在谷歌上搜索了一下,找到了一种完成我工作的方法。我将在这里添加它作为答案
public class RequestDTO {
private String paramOne;
private String paramTwo;
// standard getters and setters
}
public void setParam_one(String param_one) {
this.paramOne = param_one;
}