通过 spring 表单操作传递了错误的 URI

wrong URI passed through spring form action

我的项目叫CV;在 jsp 中,我在 "anagrafica.jsp" 中有以下 spring:form 操作:

<form:form modelAttribute="anagrafica" action="${pageContext.servletContext.contextPath}/formazione/save" method="post">

在我的控制器中:

package it.curriculum.controller;

@Transactional
@Controller
@RequestMapping("/anagrafica")
public class AnagraficaController {
    @Autowired
    private ApplicationContext context;
    @Autowired
    private AnagraficaDao anagraficaDao;

    @RequestMapping(method=RequestMethod.GET)
    public String showHome(@ModelAttribute("tecnologia")Tecnologia tecnologia, ModelMap map){
        map.addAttribute(context.getBean("anagrafica"));
        return "anagrafica";
    }

    @Transactional
    @RequestMapping(value="/save", method=RequestMethod.POST)
    public String validateAnag(@ModelAttribute("anagrafica") Anagrafica anagrafica, @ModelAttribute("formazione") Formazione formazione){
        anagraficaDao.save(anagrafica);
        return "formazione"
    }
}

问题是当我点击 anagrafica 表单的提交按钮时: 它执行前一个控制器中的代码,然后重定向到:

localhost:8080/CV/formazione/save 为什么这样? 我只是想被重定向到

localhost:8080/CV/formazione

没有

localhost:8080/CV/formazione/save。 非常感谢您的帮助。

您缺少 redirect 关键字/商品。

您需要重定向如下,

@RequestMapping("/save"){
    ...
return "redirect:/formazione";

在 Class 上更改请求 url。

@Controller
@RequestMapping("/formazione")
public class AnagraficaController {
    @Autowired
    private ApplicationContext context;
    ....

已解决: 问题出在 form:action:

    action="${pageContext.servletContext.contextPath}/formazione/save"

必须

    action="${pageContext.servletContext.contextPath}/anagrafica/save"

并放入我放入的控制器中

    redirect:/formazione

正如 ScanQR 所建议的那样。非常感谢