错误404发生在Controller(Spring)中配置的页面

时间:2014-03-08 00:40:57

标签: spring spring-mvc

在我的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&ccedil;&atilde;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&aacute;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&ccedil;&atilde;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'的名称与方法的名称不匹配(我想到某种冲突),但仍然无法工作)。

1 个答案:

答案 0 :(得分:0)

尝试在控制器请求映射后添加.html

@RequestMapping(value="/cadastra_evento.html", method=RequestMethod.POST)

或从表单中删除.html

<form method="POST" action="cadastra_evento">