Spring - JSP表单:JSP页面输入错误:jasperexception



当我将代码放入view的form:form标签中时,cadastro.jsp:

<div class="form-group">
<label for="nome" class="col-sm-2 control-label"> name Project: </ label>
<div class="col-sm-10">
<input for="nome" class="form-control" />
<form:errors path="nome" />
</div>
</div>

其作品

但是当我把

<div class="form-group">
<label for="nome" class="col-sm-2 control-label"> Nome do Projeto: </ label>
<div class="col-sm-10">
<form:input  cssClass="form-control" path="nome" />
<form:errors path="nome" />
</div>
</div>

不能工作,因为表单:input标签

错误:

HTTP状态500 -在第34行处理JSP page/WEB-INF/view/cadastro.jsp时发生异常

ProjetroController

@RequestMapping(value = "/novoProjeto", method = RequestMethod.POST)
public String adicionarProjeto(@Valid @ModelAttribute("projeto") Projeto projeto, BindingResult result) {
    if(result.hasErrors()) {
        return("cadastro");
    }
    projeto.setStatus("NOVO");
    this.pc.salvar(projeto);
    return "redirect:/listar";
}

我认为你需要在你的表单周围添加一个<form:form>标签,如下所示:

 <form:form>  
 <div class="form-group">
 <label for="nome" class="col-sm-2 control-label"> Nome do Projeto: </ label>
 <div class="col-sm-10">
 <form:input  cssClass="form-control" path="nome" />
 <form:errors path="nome" />
 </div>
 </div>
 </form:form>  

在Spring官方文档中,它声明:

这个库中的所有其他标签都是形式的嵌套标签标签

你必须导入spring form标签库才能使用spring form元素,如:

添加到jsp

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>

那么,你可以这样写:

<form:form id="myForm" method="post" action="/someAction" modelAttribute="formBean">            
     <form:label path="name"/>
     <form:input path="name"/>
<form:form>

在控制器中添加modelAttribute/command对象,如:

@RequestMapping(value="/someUrl", method=RequestMethod.GET)
public String showForm(Model model){
   model.addAttribute("formBean", new FormBean());
   return "someViewName";
}

FormBean类看起来像:

public class FormBean {
  private String name;
  public FormBean(){} //default constructor  
  //getter and setter for name
}

最新更新