Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @RestController将表单返回到同一页面但URL不同_Java_Thymeleaf_Spring Restcontroller - Fatal编程技术网

Java @RestController将表单返回到同一页面但URL不同

Java @RestController将表单返回到同一页面但URL不同,java,thymeleaf,spring-restcontroller,Java,Thymeleaf,Spring Restcontroller,我正在使用@RestController管理页面中的一些不同表单(使用Thymeleaf),它工作正常,但浏览器中的URL不会“重置”,即使我每次创建一个新的ModelAndView: 例如: 初始URL:http://localhost:8090/project/v1/controller/ RestController中某些操作后的URL:http://localhost:8090/project/v1/controller/actionA 我想要的URL:http://localhost:

我正在使用@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,然后将该对象返回到我的索引,但又失败了。 有人能告诉我怎样才能做好吗?
提前感谢。

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

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

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

只需使用:

      @Controller 

你的问题解决了

如何将POST也映射到value=“/”而不是value=“/actionA”?我不能这样做,因为这个值是我页面中表单中使用的参数,用于标识我要执行的RestController的方法,因此我需要不同的值参数。如果有人有相同的问题,直到现在我都无法解决。当我找到解决方案时,我会在这里更新。我使用它是因为公司的项目结构,正如我所说的,它工作良好,没有问题,只是浏览器中的URL。所以,我认为这不是问题所在,但我会在这里尝试,并尽快给出反馈。