21.06.11 TILスプリングMVC:Front Control-2片(サーブレット)
4172 ワード
📌 SpringMvc-FrontController[V4]
<出典:Spring MVC:金英漢講師>
https://www.inflearn.com/roadmaps/373
🐳 V4
V 3は、テンプレート依存性とビュー冗長性を排除する設計の良いコントローラです.
しかし、実際のコントローラインタフェースを実施する開発者にとっては、
常に
ModelView
オブジェクトを生成して返す部分は少し面倒です.構造を参照してください.V 3とあまり違いはありません.ただし、ModelViewではなくViewのみが返されます.
ConV4.interface
String process(Map<String, String> paramMap, Map<String, Object> model);
モデルオブジェクトはパラメータとして渡されるため、直接使用し、結果はビューの名前のみを返します.FormV4
@Override
public String process(Map<String, String> paramMap, Map<String,Object> model){
return "new-form";
}
new-form
というビューの論理名を簡単に返すだけでよい.ListV4
@Override
public String process(Map<String, String> paramMap, Map<String, Object> model){
List<Member> members = memberRepository.findAll();
model.put("members", members);
return "members";
V 3とは異なり、モデルはパラメータとして渡されるので、V 3のようにModeViewを作成および処理する必要はありません.私の状況は複雑ですか?これは少し抜けて、コードも少しきれいになったと思います.
FrontConV 4[FrontConV 3の違い]
private Map<String, ConV4> controllerMap = new HashMap<>();
public FrontConV4(){
controllerMap.put("/front/v4/member/new-form", new FormV4());
}
protected void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
String requestURI=req.getRequestURI();
ConV4 controller = controllerMap.get(requestURI);
if(controller==null){
...
}
Map<String, String> paramMap = createParamMap(req);
추가 --> Map<String, Object> model = new HashMap<>();
ModelView mv = controller.process(paramMap);
변경--> String viewName = controller.process(paramMap, model);
String viewName = mv.getViewName();
--> 제거
MyView view = viewResolver(viewName);
view.render(mv.getModel(), req, res);
변경 --> view.render(model, req, res);
➽V 4の定理これはV 3とあまり変わらないと思います.しかし、コードを見るともっと直感的に感じられます.
ある意味では、変更された部分は、モデルをパラメータに渡し、ビューの論理名を返す操作のみを適用します.
➽V 5の場合はSpring Mvcの構造と似ているので,V 5は単独で整理するのではなく,Spring Mvcの構造を直接位置決めする.
Reference
この問題について(21.06.11 TILスプリングMVC:Front Control-2片(サーブレット)), 我々は、より多くの情報をここで見つけました https://velog.io/@ddwj/21.05.10-11-TIL-스프링-MVC-FrontController-2편Servlet으로-만들기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol