错误的URI通过spring form动作传递

时间:2016-12-15 13:53:43

标签: java spring jsp spring-mvc request-mapping

我的项目名为CV;在jsp中,我有以下春天:" anagrafica.jsp"中的表单动作:

<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表单的提交按钮时: 它执行前一个控制器内的代码,然后重定向到:

本地主机:8080 / CV / formazione /保存 为什么这样? 我只是想被重定向到

本地主机:8080 / CV / formazione

本地主机:8080 / CV / formazione /保存。 非常感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

您缺少redirect关键字/机制。

您需要按以下方式重定向,

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

答案 1 :(得分:0)

更改Class上的请求网址。

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

答案 2 :(得分:0)

解决: 问题的形式是:行动:

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

必须是

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

进入控制器我把

    redirect:/formazione

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