2016-11-18 5 views
0

私は春に新たなんだと私がしたい:GETリクエストとPOSTリクエストからSpringコントローラメソッド間で情報を共有する方法は?

1)はlocalhost /管理者/ユーザーには、ユーザーが訪問はlocalhost /管理者/ユーザー私は事前に定義されたオプションが

2を適用したいです)私の上司は私がgetを使用したくない(と私はあまりにも、POSTを使用することをお勧めだと思います)ので、私は四つのパラメータを持つPOSTを実行するいくつかのボタンを持っている

3)は、私が管理するコントローラメソッドadminUsersPostを持っていますPOSTリクエスト、およびIその方法でadminUsersGetメソッドを使用してブラウザをリロードできるようにしたいのですが、その情報はPOSTリクエストで送信されます。

私のブラウザには、奇妙なエンコーディングでウェブページのコンテンツが表示されているので、正しいと思いますがわかりません。

@RequestMapping(value = "/admin/users", method = RequestMethod.GET) 
public ModelAndView adminUsersGet(
    Integer page, 
    Integer items, 
    String sorting, 
    String sortingDirection) 
{ 
    // predefined options 
    Integer pagina = 1; 
    Integer itemsPorPagina = 10; 
    String ordenacion = "idUsuario"; 
    String dirOrdenacion = "asc"; 
    // end of predefined options 

    // Code that I want for it to use POST params from the other method 


    ModelAndView mv = new ModelAndView("adminUsers"); 
    return mv; 
} 

@RequestMapping(value = "/admin/users", method = RequestMethod.POST) 
public ModelAndView adminUsersPost(
    @RequestParam(value = "pagina") Integer pagina, 
    @RequestParam(value = "itemsPorPagina") Integer itemsPorPagina, 
    @RequestParam(value = "ordenacion") String ordenacion, 
    @RequestParam(value = "dirOrdenacion") String dirOrdenacion) 
{ 
    // Here I try to pass the POST parameters to the GET method for reloading 
    // the webpage with the new content 
    return adminUsersGet(pagina, itemsPorPagina, ordenacion, dirOrdenacion); 
} 
+0

リダイレクトするには、http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-redirectingに関するリダイレクトに関するドキュメントを使用します。しかし、POSTメソッドのポイントは何ですか。それがGETにリダイレクトされるのであれば、なぜPOSTを使うのですか?そして、リソースを作成しない検索と思われるものに対してPOSTを使用する理由は何ですか?それがGETの目的です。 –

+0

@JBNizet私は春にはとても新しいので、新しいオプションをリロードするだけですが、クエリ文字列を使わずに、Springコントローラメソッド間で情報を共有したり、POSTマネージャメソッド自体からリダイレクトしたりしてください。これを達成する方法はあまり重要ではありませんが、クエリ文字列のないURLが必要です。 – freinn

+0

その後、GETではなくPOSTを使用します。しかし、それはすべてのWeb標準に違反しています。クエリ文字列の問題は何ですか? Googleは検索にクエリ文字列を使用していますが、それが成功することはありません(反対に)。ウェブはスマートな人々によって設計されています。なぜそのデザインに反するのでしょうか? –

答えて

1

パターンPOSTパラメータ - > GET同じパラメータは共通です。必要なのはRedirectAttributesで、これはセッションにパラメータを格納し、GETメソッドにリダイレクトします。 GETがヒットすると、springはセッションからすべての属性を自動的に削除します。したがって、POSTパラメータはGETメソッドのブラウザURLには表示されません。完全な例についてはhereを見て、必要に応じて調整してください。

+0

ありがとう、私は私のGETマネージャメソッドのPOSTパラメータがありますが、ページのリロードの代わりにJavaScriptのアラートを取得しています。 http://pastebin.com/8gSC4e6Gで更新されたコード – freinn

関連する問題