当我尝试将布尔值从url映射到spring控制器时,它总是映射为false。
这是我的网址
http://localhost:8080/myurl?isFirstTime=true
这是我的控制器
@RequestMapping(value = "/myurl", method = RequestMethod.GET)
public ResponseEntity<?> getMyUrl(@Valid @ModelAttribute MyObject ap,BindingResult bindingResult ) {
//here isFirstTime is always set to false
}
MyObj
是POJO,并且具有其他几个可以完美映射的属性
public class Myobj{
private boolean isFirstTime
//there are other members as well
//getter setter
我尝试放@JsonProperty
,但那也没有用
@JsonProperty
private boolean isFirstTime
知道我在做什么错吗?
答案 0 :(得分:0)
使用@ModelAttribute可以初始化对象:
在您的情况下,可能与上一条语句有关。
您可以尝试两种解决方法: -在Myobj.java中为构造函数提供布尔参数 -添加更多方法来首先初始化@ModelAttribute Myobj
@ModelAttribute
public Myobj initObj(@RequestMapping boolean isFirstTime){
Myobj obj = new MyObj();
obj.setIsFirstTime(isFirstTime);
return obj;
}
答案 1 :(得分:0)
最简单的方法可能是
@RequestMapping(value = "/myurl", method = RequestMethod.GET)
public ResponseEntity<?> getMyUrl(@Valid @ModelAttribute MyObject ap,@RequestParam boolean isFirstTime, BindingResult bindingResult ) {
///此处isFirstTime始终根据传入的请求参数进行初始化 //您可以将其设置为ap.isFirstTime(isFirstTime); //或任何您的设置方法是
}