2011-12-27 19 views
0

doGetパラメータを指定する必要があり、毎回何がスローされるのかが冗長に感じ始めています。 Controllerの中でそれをすべて行う方法はありますか?すべてのページで行う必要はありませんか?私Controllerは現在、あなたはdoGetメソッド毎回を定義する必要はありませんので、あなたはcms.library.Controllerクラスにテンプレートに渡すことができます何doGet()冗長コードを減らす

@WebServlet(name = "EditServlet", urlPatterns = {"/content/edit"}) 
public class EditServlet extends cms.library.Controller { 
    @Override 
    public void doGet (HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 

     this.loadView(new cms.library.PageConfig() 
       .setRequest(request) 
       .setResponse(response) 
       .setTemplate("/content/edit")); 
    } 

    @Override 
    public void doPost (HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 

     System.out.println("posted"); 

     this.doGet(request, response); 
    } 
} 
+0

「doGet」があるため、「doGet」を持たないことを意味するのかどうか不明です。また、POSTとGETを同じにすることが妥当かどうかはわかりません。それは、form-ishではないものにPOSTするのはほぼ確実にクライアントエラーになるでしょう。 –

答えて

0

を持っていません。

public class Controller { 
    private final String template; 
    public Controller(String template) { 
     this.template = template; 
    } 
    @Override 
    public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     this.loadView(new cms.library.PageConfig() 
       .setRequest(request) 
       .setResponse(response) 
       .setTemplate(template)); 
    } 
} 

@WebServlet(name = "EditServlet", urlPatterns = {"/content/edit"}) 
public class EditServlet extends cms.library.Controller { 
    public EditServlet() { 
     super("/content/edit"); 
    } 
    @Override 
    public void doPost (HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     System.out.println("posted"); 
     this.doGet(request, response); 
    } 
} 

または(代わりに文字列を渡すの)あなたがあなた自身の注釈を作ることができるとControllerクラスは、注釈のためにそのコンストラクタで実装したクラスを調べます。

関連する問題