使用Spring MVC,有什麼辦法可以將org.springframework.ui.Model
分解,以便不必在任何控制器中的方法參數中指定它?如何分解控制器中的模型?
換句話說,我正在做這樣的:
public abstract class AbstractController {
@Autowired
protected MultipartHttpServletRequest request;
}
@Controller
public class SigninController extends AbstractController {
@RequestMapping(value = "/signin", method = RequestMethod.GET)
public String signin(@ModelAttribute User user, Model model) {
// do stuff with user (parameter)
// do stuff with model (parameter) <--
// do stuff with request (attribute)
return "/signin/index";
}
}
,我願做這樣的:
public abstract class AbstractController {
@Autowired
protected MultipartHttpServletRequest request;
@Autowired
protected Model model;
}
@Controller
public class SigninController extends AbstractController {
@RequestMapping(value = "/signin", method = RequestMethod.GET)
public String signin(@ModelAttribute User user) {
// do stuff with user (parameter)
// do stuff with model (attribute) <--
// do stuff with request (attribute)
return "/signin/index";
}
}
但在調用URL時,拋出一個異常:
...Could not autowire field: protected org.springframework.ui.Model...
...No matching bean of type [org.springframework.ui.Model] found for dependency...
我在使用org.springframework.ui.ModelMap
時得到了同樣的錯誤。
任何解決方案?
感謝您的幫助:)
@ sp00m ..我只是想知道這樣做的目的。 – raddykrish 2012-04-25 16:51:57
@raddykrish我只是發現我的控制器更具可讀性,我不是那種有n個參數的方法(3
sp00m
2012-04-25 18:04:40
我明白你的觀點。我的想法是,由於Model和ModelMap不是Spring託管類,我想知道我們是否可以做到這一點。 – raddykrish 2012-04-25 18:46:27