到目前为止,我已经安装了Spring Boot来执行手动执行。通过Tomcat时,我在以帖子的形式运行时遇到了问题,这是我以前没有的。我注意到该网址显示不正确,导致应用程序名称丢失。
@RequestMapping(value = "/registrazioneNuovoRuolo", method = RequestMethod.GET)
public String showFormRegistrazioneRuolo(WebRequest request, Model model) {
RuoloDto RuoloDto = new RuoloDto();
model.addAttribute("ruolo", RuoloDto);
model.addAttribute("visite", visitaRepository.findAll());
return "registrazioneRuolo";
}
//Derivante dall'invio della form , effettuo la creazione del ruolo legando i dati acquisiti
@RequestMapping(value = "/registrazioneNuovoRuolo", method = RequestMethod.POST)
public ModelAndView registerNuovoRuolo(@Valid RuoloDto ruoloDto,
BindingResult result, WebRequest request, Errors errors , Model model) {
Ruolo ruolo = new Ruolo();
if (!result.hasErrors()) {
ruolo.setNome(ruoloDto.getNome().toUpperCase());
if(ruoloDto.getIdVisite()!=null)
ruolo.setVisite(visitaRepository.findAllById(ruoloDto.getIdVisite()));
ruoloRepository.save(ruolo);
return new ModelAndView("redirect:/homepageVIME","successInserimentoRuolo",true);
}
return new ModelAndView("redirect:/registrazioneNuovoRuolo","success",false);
}
我正确显示了表单,一旦确认进入表单的post方法,URL就不正确。我给你看一个例子: http://localhost:8081/nameapp/registrazioneNuovoRuolo,当我确认时是正确的 http://localhost:8081/registrationNuovoRuolo由于缺少nameapp而返回404
答案 0 :(得分:1)
在这里,您使用两个不同的方法使用相同的端点(@RequestMapping(value = "/registrazioneNuovoRuolo" )
,这可能会导致问题。当您通过网络浏览器发送请求时,它就是GET请求。要发出POST请求,如果尚未使用POST方法创建表单,则应使用Postman和类似工具。 Tomcat也没有问题
如果您没有任何类级别的“请求映射”,则会显示以下内容。
答案 1 :(得分:1)
请确保在进行如下所示的表单操作之前先加斜杠,以使spring会自动在上下文路径(nameapp)之前添加。
action="/registrazioneNuovoRuolo"
如果上面的方法不起作用,则可以像下面这样在上下文路径之前添加
。"${#request.contextPath}/registrazioneNuovoRuolo" (thymeleaf)
action="${pageContext.request.contextPath}/registrazioneNuovoRuolo" (JSP)
答案 2 :(得分:0)