春天有懒惰模型attrubute注释吗?
以下代码和平来解释我在寻找什么@Controller
class MyController {
private boolean hasValue=false;
@RequestMapping(value "test.html")
public String testMEthod(ModelMap model, @RequestParam(value = "person", defaultValue = "null") Person person)
person==null ? false : true;
return "testResults";
}
@ModelAttribute("hasValue")
public boolean hasValue(){
return hasValue;
}
上面的代码总是将false放到模型中,因为在调用任何@RequestMapping之前都会执行所有@ModelAttribute。为了工作,在从请求映射调用的方法之后,需要强制将hasValue放到模型中。
答案 0 :(得分:0)
使用默认的@ModelAttribute
注释,就像您提到的那样,在@RequestMapping
带注释的方法之前将对@ModelAttribute方法进行评估。可能有两种懒惰的方法:
一个。显式,有一个方法可以设置你的模型属性post方法调用,从你的@RequestMapping方法调用它:
public void setLazyModelAttribs(Model model){
model.addAttribute("hasValue", hasValue);
}
@RequestMapping
public void testMethod(..Model model, ...){
//normal request mapping
setLazyModelAttribs(model);
}
湾使用after
aspectj建议。