Spring @ModelAttribute始终将布尔值映射为false
当我尝试将布尔值从url映射到spring控制器时,它总是映射到false 这是我的网址Spring @ModelAttribute始终将布尔值映射为false,spring,spring-mvc,spring-boot,modelattribute,Spring,Spring Mvc,Spring Boot,Modelattribute,当我尝试将布尔值从url映射到spring控制器时,它总是映射到false 这是我的网址 http://localhost:8080/myurl?isFirstTime=true 这是我的控制器 @RequestMapping(value = "/myurl", method = RequestMethod.GET) public ResponseEntity<?> getMyUrl(@Valid @ModelAttribute MyObject ap,Bind
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
}
我试着放@JsonProperty
,但也没用
@JsonProperty
private boolean isFirstTime
知道我做错了什么吗?使用@modeldattribute,对象将被初始化:
- 如果已通过模型添加,则从模型中删除
- 通过@SessionAttributes从HTTP会话
- 来自通过转换器传递的URI路径变量
- 从默认构造函数的调用
- 通过调用参数与Servlet请求参数匹配的“主构造函数”;参数名是通过JavaBeans确定的
@ModelAttribute
public Myobj initObj(@RequestMapping boolean isFirstTime){
Myobj obj = new MyObj();
obj.setIsFirstTime(isFirstTime);
return obj;
}
最简单的方法可能是
@RequestMapping(value = "/myurl", method = RequestMethod.GET)
public ResponseEntity<?> getMyUrl(@Valid @ModelAttribute MyObject ap,@RequestParam boolean isFirstTime, BindingResult bindingResult ) {
@RequestMapping(value=“/myurl”,method=RequestMethod.GET)
公共响应属性getMyUrl(@Valid@ModelAttribute MyObject ap,@RequestParam boolean isFirstTime,BindingResult){
//这里是FirstTime总是根据传入的请求参数初始化
//您可以将其设置为ap.isFirstTime(isFirstTime);//或任何setter方法
}您应该使用
POST
请求,而不是GET
,或者使用@RequestParam boolean isFirstTime
,所以您是说使用getsee这是不可能的,我从您提供的链接中没有任何线索。
@RequestMapping(value = "/myurl", method = RequestMethod.GET)
public ResponseEntity<?> getMyUrl(@Valid @ModelAttribute MyObject ap,@RequestParam boolean isFirstTime, BindingResult bindingResult ) {