通过 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 所建议的那样。非常感谢
我的项目叫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 所建议的那样。非常感谢