有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    @RestController通常不会更改页面或重定向其他页面

    Rest控制器处理Rest api什么是呈现json,纯文本等

    如果需要呈现或重定向html页面,为什么要使用@RestController

    只需使用:

          @Controller 
    

    你的问题解决了