java@RestController将表单返回到同一页面但URL不同
我正在使用@RestController管理页面中的一些不同表单(使用Thymeleaf),它工作正常,但浏览器中的URL不会“重置”,即使我每次创建一个新的ModelAndView:
例如:
初始URL:http://localhost:8090/project/v1/controller/
RESTCONTROLLER中某些操作后的URL:http://localhost:8090/project/v1/controller/actionA
我想要的URL:http://localhost:8090/project/v1/controller/
我的代码:
@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView index(){
ModelAndView mav = new ModelAndView();
mav.addObject("myObj", this.someMethods());
mav.setViewName("index"); //my page
return mav;
}
@RequestMapping(value = "/action", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE, params = "action=actionA")
public ModelAndView actionA(...) {
ModelAndView mav = new ModelAndView();
mav.addObject("myObj", this.someMethods());
mav.setViewName("index"); //again the same page
return mav;
}
我不能使用相同的值参数,因为它在我的表单/操作页面中用于标识要在restcontroller中执行的方法,例如:
<form id="action" method="POST" th:object="${Object}"
th:action="@{/v1/emulador-central/action}">
...
<button type="submit" name="action" value="actionA" class="btn btn-primary">Aprovar</button>
<button type="submit" name="action" value="actionB" class="btn btn-primary" style="float:right;">Reprovar</button>
...
</form>
我尝试使用重定向,但没有成功,我尝试创建一个新方法POST来创建ModelAndView,然后将该对象返回到我的索引,但又失败了。 有人能告诉我怎样才能做好吗? 提前谢谢
# 1 楼答案
@RestController通常不会更改页面或重定向其他页面
Rest控制器处理Rest api什么是呈现json,纯文本等
如果需要呈现或重定向html页面,为什么要使用@RestController
只需使用:
你的问题解决了