1

解決策が明らかな問題があります。

post メソッドと get メソッドの両方をアプリケーションのベース URL にバインドしたいと考えています。メソッドの1つが次のように見える注釈付きコントローラーウィッチを使用しています:

@RequestMapping(value = { "/*" }, method = { RequestMethod.GET, RequestMethod.POST })
public void init(HttpServletRequest request) {
     logger.info("Method: " + request.getMethod());
}

どちらの場合も、get リクエストまたは post リクエストを送信すると、常に「メソッド: GET」という結果が得られます。どうすればこの問題を解決できますか?

アプリのどこかにリダイレクトがあるようですが、何も見つかりません。

前もって感謝します!

4

1 に答える 1

0

問題は、プログラムをテストする方法にあります.POSTをテストするためにブラウザウィンドウにURLを入力してGETメソッドのみを使用しています.次のようなコンテンツを含む単純なhtmlページを作成できます

<form action="http://localhost:8080/yourapp/yourEntryPoint" method="post">
  <input type="text" name="data" value="mydata" />
  <input type="submit" />
</form>

そしてそれをブラウザで開く

または、選択したブラウザー (google) の「REST サービス テスト」にプラグインを使用します。

Spring MVC の詳細 http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/htmlsingle/#mvc-ann-requestmapping

そのコントローラーのベース URL にマップするために、メソッドに value= を配置する必要はありません

    @Controller
    @RequestMapping("/yourEntryPoint")
    public class YourClass {

        @RequestMapping(method =  {RequestMethod.GET, RequestMethod.POST })
         public void get() {
            logger.info("Method: " + request.getMethod());
        }

       @RequestMapping(value="/new", method = RequestMethod.GET)
        public void getNewForm() {
        logger.info("NewForm" );
    }

    }

これにより、リクエスト POST と GET の両方が URL にマップされます

http://host:port/yourapp/yourEntryPoint

これは GET にマップされます

http://host:port/yourapp/yourEntryPoint/new
于 2012-11-28T22:59:38.173 に答える