在我的Spring应用程序中,我有以下表单,其操作将从我的控制器触发一个方法:
<form method="POST" action="cadastra_evento.html">
<input type="text" name="nome" placeholder="Nome" size=20 maxlength=40> <br/>
<input type="text" name="descricao" placeholder="Descrição" size=30 maxlength=100> <br/>
<h3>Periodo da Data</h3>
inicio: <input name="data_inicial" placeholder="DD-MM-AAAA" pattern="\d{2}-\d{2}-\d{4}" /> <br/>
final: <input name="data_final" placeholder="DD-MM-AAAA" pattern="\d{2}-\d{2}-\d{4}" /> <br/>
<h3>Periodo do Horário</h3>
inicio: <input name="hora_inicial" placeholder="HH:MM:SS" pattern="\d{2}:\d{2}:\d{2}" /> <br/>
final: <input name="hora_final" placeholder="HH:MM:SS" pattern="\d{2}:\d{2}:\d{2}" /> <br/>
<input type="text" name="duracao" placeholder="duração" size=20 maxlength=2> Minutos <br/>
<button type="submit" class="btn btn-lg btn-primary">Cadastrar</button>
</form>
与此页面关联的方法是:
@RequestMapping(value="/cadastra_evento", method=RequestMethod.POST)
public ModelAndView cadastra_evento(@RequestParam("nome") String nome, @RequestParam("descricao") String descricao, @RequestParam("data_inicial") String data_inicial, @RequestParam("hora_inicial") String hora_inicial, @RequestParam("data_final") String data_final, @RequestParam("hora_final") String hora_final, @RequestParam("duracao") String duracao)
{
if(sessao != null)
{
if(sessao.getUsuario().temAutorizacao("cad_evento"))
{
Date d_inicio = new Date(Date.parse(data_inicial));
Date d_final = new Date(Date.parse(data_final));
Time h_inicio = new Time(Time.parse(hora_inicial));
Time h_final = new Time(Time.parse(hora_final));
int duracao2 = Integer.valueOf(duracao).intValue();
EventoDAO evento = new EventoDAO(nome, descricao, d_inicio, d_final, h_inicio, h_final, duracao2, sessao.getUsuario());
int saida = evento.cadastra();
if(saida == 0)
{
ModelAndView mav = new ModelAndView();
mav.addObject("message", "Erro ao cadastrar o evento");
return mav;
}
else
{
ModelAndView mav = new ModelAndView();
mav.setViewName("/listagem_evento");
return mav;
}
}
else
{
ModelAndView mav = new ModelAndView();
mav.addObject("message", "Usuário sem permissão de acesso");
return mav;
}
}
else
{
ModelAndView mav = new ModelAndView();
mav.setViewName("/usuario_login_page");
return mav;
}
}
当我点击提交按钮时,我收到错误消息404,因为系统正在尝试访问不存在的页面/WEB-INF/jsp/cadastra_evento.jsp。我有一个其他页面使用相同的方案login.htm,由登录页面触发,但该页面工作正常。
有人可以在上面的代码中找到任何错误吗?
PS:我尝试使用更改RequestParam的属性'value'的名称与方法的名称不匹配(我想到某种冲突),但仍然无法工作)。
答案 0 :(得分:0)
尝试在控制器请求映射后添加.html
:
@RequestMapping(value="/cadastra_evento.html", method=RequestMethod.POST)
或从表单中删除.html
:
<form method="POST" action="cadastra_evento">