2011-08-09 47 views
3

我使用的JSP,这是我contacts.jsp的Java Spring表单标签问题

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %> 
<html> 
<head> 
    <title>Spring 3.0 MVC series: Contact manager</title> 
</head> 
<body> 
<h2>Contact Manager</h2> 
<form:form method="post" action="addContact.html"> 

    <table> 
     <tr> 
      <td><form:label path="firstName">First Name</form:label></td> // LABEL 
      <td><form:input path="firstName" /></td> 
     </tr> 
     <tr> 
      <td><form:label path="lastName">Last Name</form:label></td> 
      <td><form:input path="lastName" /></td> 
     </tr> 
     <tr> 
      <td><form:label path="lastName">Email</form:label></td> 
      <td><form:input path="email" /></td> 
     </tr> 
     <tr> 
      <td><form:label path="lastName">Telephone</form:label></td> 
      <td><form:input path="telephone" /></td> 
     </tr> 
     <tr> 
      <td colspan="2"> 
       <input type="submit" value="Add Contact"/> 
      </td> 
     </tr> 
    </table> 

</form:form> 
</body> 
</html> 

我的问题是,当我改变form:label path="firstName"form:label path="firstname",为什么Tomcat启动时抛出的错误?模型只需要输入路径,因为输入路径中的值是它将使用的值?

编辑:

我应该甚至使用form:label tag,为什么使用它?

+0

使用标签的价值是,它们允许用户点击标签来选择标签所附的控件(通过标签的“ for“属性)。 – DwB

+1

form:label标签需要一个路径属性,以便它可以生成标签标签的“for”属性。 – DwB

+0

@DwB:谢谢! > – Jaanus

回答

9

这是因为firstName要么被直接使用,要么被翻译成方法getFirstName()

无论采用哪种方式,在执行查找时大写都很重要。


对于您是否不需要path在标签的问题:如果你提供的路径,则标签就知道它属于哪个输入。在HTML中,它允许您单击标签并使输入字段获得焦点。我假设你的代码的输出HTML是这样的:

<tr> 
    <td><label for="firstName"></td> 
    <td><input type="text" id="firstName"></td> 
</tr> 
+0

但是,无论如何,我应该使用'form:label'标记,当它没有关系,或者它不是? – Jaanus

+0

我没跟着你。 – Jeremy

+0

我想知道,为什么我应该使用'form:label'标签,当它不在任何地方使用? – Jaanus