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..iこれを行う目的を知りたいのはちょっと不思議です。 – raddykrish
@raddykrish私はコントローラを読みやすく、nパラメータ(3
sp00m
私はあなたのポイントを理解しています。 ModelとModelMapはSpringの管理クラスではないので、私はこのAutowiringを実行できるかどうか疑問に思っています。 – raddykrish