【问题标题】:Spring - JSP form:input on jsp page error: jasperexceptionSpring - JSP 表单:jsp 页面上的输入错误:jasperexception
【发布时间】:2014-06-21 00:47:37
【问题描述】:

当我将代码放在 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>

不工作,因为表单:输入标签

错误:

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

项目控制器

@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";

}

【问题讨论】:

    标签: spring jsp spring-mvc tags


    【解决方案1】:

    你必须导入spring form taglib才能使用spring form的elemnets,例如:

    在你的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
    }
    

    【讨论】:

    • 成功了,但是你忘了把return放在showForm方法中,在这种情况下是:当“cadastro”是我的jsp页面的名称时返回“cadastro”谢谢。
    【解决方案2】:

    我认为您需要在表单周围添加一个&lt;form:form&gt; 标签,如下所示:

     <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 官方文档中,它声明:

    这个库中的所有其他标签都是 form 标签的嵌套标签。

    【讨论】:

      猜你喜欢
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      • 2017-10-06
      • 2012-05-06
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 2016-03-02
      相关资源
      最近更新 更多