私はSpring3とTiles3を使用しています。以下は私が作成した単純化された例です。すべてのSimpleEntity
オブジェクトを一覧表示するテストコントローラーがあります。また、JSPには、POSTを介して新しいエンティティを追加するための入力フィールドがあります。これがコントローラーです。
@Controller
@RequestMapping(value="/admin/test")
public class TestAdminController {
private String TEST_PAGE = "admin/test";
@Autowired
private SimpleEntityRepository simpleEntityRepository;
@ModelAttribute("pageName")
public String pageName() {
return "Test Administration Page";
}
@ModelAttribute("simpleEntities")
public List<SimpleEntity> simpleEntities() {
return simpleEntityRepository.getAll();
}
@RequestMapping(method=RequestMethod.GET)
public String loadPage() {
return TEST_PAGE;
}
@RequestMapping(method=RequestMethod.POST)
public String addEntity(@RequestParam String name) {
SimpleEntity simpleEntity = new SimpleEntity();
simpleEntity.setName(name);
simpleEntityRepository.save(simpleEntity);
return "redirect:/" + TEST_PAGE;
}
}
すべてが正常に動作します。ただし、フォームを送信すると、URLにpageName
パラメーターが追加されるため、から/admin/test
になり/admin/test?pageName=Test+Administration+Page
ます。ページがリロードされたときにこれが発生しないようにする方法はありますか?
アップデート
これがJSPフォームです。
<form:form action="/admin/test" method="POST">
<input type="text" name="name" />
<input type="submit" name="Save" />
</form:form>