私は春に新たなんだと私がしたい: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);
}
リダイレクトするには、http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-redirectingに関するリダイレクトに関するドキュメントを使用します。しかし、POSTメソッドのポイントは何ですか。それがGETにリダイレクトされるのであれば、なぜPOSTを使うのですか?そして、リソースを作成しない検索と思われるものに対してPOSTを使用する理由は何ですか?それがGETの目的です。 –
@JBNizet私は春にはとても新しいので、新しいオプションをリロードするだけですが、クエリ文字列を使わずに、Springコントローラメソッド間で情報を共有したり、POSTマネージャメソッド自体からリダイレクトしたりしてください。これを達成する方法はあまり重要ではありませんが、クエリ文字列のないURLが必要です。 – freinn
その後、GETではなくPOSTを使用します。しかし、それはすべてのWeb標準に違反しています。クエリ文字列の問題は何ですか? Googleは検索にクエリ文字列を使用していますが、それが成功することはありません(反対に)。ウェブはスマートな人々によって設計されています。なぜそのデザインに反するのでしょうか? –