2013-05-17 19 views
8

まず第一に、ここに私のController次のとおりです。私は、サイトにアクセスすると、いくつかのパラメータがある場合RequestMethod POSTとGETは同じコントローラにありますか?

@RequestMapping(value = "/esta", method = RequestMethod.POST) 
public String handleRequest(HttpServletRequest request) { 

    Esta estaobject = new Esta(); 
    // To test, if the parameters are set 
    String user = request.getParameter("user"); 
    String name = request.getParameter("name"); 
    String shortname = request.getParameter("shortname"); 
    String was_admin_string = request.getParameter("was_admin"); 
    String sap_nr = request.getParameter("sap_nr"); 
    String etl_string = request.getParameter("etl"); 

    if (user != null && name != null && shortname != null && was_admin_string != null && sap_nr != null && etl_string != null) { 
     some code... 
    } 

    request.getSession().setAttribute("esta", estaobject); 

    return "esta"; 
} 

、それは、if -statementに確認してください。
そうでなければ、私のフォームが表示されます。そして、私がフォームに記入すると、それはPOSTで送信され、いくつかのパラメータがあり、それはifの記述を通ります。

私の問題は:初めてサイトにアクセスしたときにはPOST -requestではないので、エラーメッセージRequest method 'GET' not supportedが表示されます。
しかし、フォームをGETに変更する - リクエストは私にとってはオプションではありません。 POSTである必要があります。

POSTGETリクエストで同じコントローラを処理するソリューションはありますか?

答えて

19

それそうのような、それがマッピングされる方法の値の配列、作り:

@RequestMapping(value = "/esta", method = {RequestMethod.POST, RequestMethod.GET}) 
+0

はすでにそれをしようとしたが、私はいつも同じエラーが出る... –

+1

Oooooooooh少年。それは恥ずかしい...私は "クリーンインストール"私のクラスを忘れてしまった。今それは動作します。私は申し訳ありません^^正しい答えは '+ 1':P –

+0

ハハ、問題ありません。 – CorayThan

2

それとも、今あなたが特定のページを訪問するあなたを実装することができます別の方法

@RequestMapping(value = {#some_vale}, method = RequestMethod.GET) 
public random_method #1{ 
} 

@RequestMapping(value = { #some_value }, method = RequestMethod.POST) 
public random_method #2{ 
} 

を書くことができますフォームを記入する別のものと、 これがあなたを助けてくれることを願っています。

0

春の開発者は、単にそのような方法の配列を作る同じコントローラでRequestMethod.POSTとRequestMethod.GETの両方を使用することができて:

@RequestMapping(value = "/esta", method = {RequestMethod.POST, RequestMethod.GET}) 
public String handleRequest(HttpServletRequest request) { 
//Implementation of your code. 
} 
関連する問題