servlet和jsp之间的通信不起作用 - PropertyNotFoundException

时间:2012-08-04 21:55:24

标签: java html jsp web-applications servlets

我正在尝试将信息从我的servlet传递给jsp,其中一些字段成功传递,而另一些则不传递。

这是我输入输入的初始页面:

enter image description here

index.html

的代码
<!DOCTYPE html>
<html>
<head><title>Bank application</title>
<link rel="stylesheet"
      href="./css/styles.css"
      type="text/css"/>
</head>
<body>
<table class="title">
  <tr><th>Web Bank application</th></tr>
</table>


<br/>
<fieldset>
  <legend>Registration</legend>
  <form action="register"> 
    First name: <input type="text" name="firstName"><br>
    Last name : <input type="text" name="lastName"><br>
    Address   : <input type="text" name="address"><br>
    ID-number : <input type="text" name="idnumber"><br>
    User-Name : <input type="text" name="userName"><br>
    Password  : <input type="text" name="password"><br>
    <input type="submit" value="Register">
  </form>
</fieldset>

我想将数据传递给名为show-name.jsp的jsp:

<!DOCTYPE html>
<html>
<head><title>Thanks for Registering</title>
<link rel="stylesheet"
      href="./css/styles.css"
      type="text/css"/>
</head>
<body>
<h1>Congratulations ! You are now registered to our bank</h1>
<h2>First Name: ${name.firstName}</h2>  // that's okay 
<h2>Last Name: ${name.lastName}</h2>    // that's okay  
<h2>Address: ${name.address}</h2>       // that's okay 
<h2>Password: ${name.password}</h2>     // that's okay 
<h2>User-Name: ${name.userName}</h2>    // that's not okay 
<h2>Id Number: ${name.idnumber}</h2>    // that's not okay 
</body></html>

我在Eclipse中遇到以下异常:

root cause 

javax.el.PropertyNotFoundException: Property 'userName' not found on type model.Person

或者:

root cause 

javax.el.PropertyNotFoundException: Property 'idnumber' not found on type model.Person

奇怪的是,所有其他4字段都表现得很好,这意味着name.firstName&amp; name.lastName&amp; name.address&amp; name.password,但其他两个不是,即使我添加了几个System.out.prinln - s:

      System.out.println(person.getID());
      System.out.println(person.getUsername());

在servlet中,数据成功呈现给console,这意味着我得到了:

4444
5555

。但由于某种原因,数据部分未传递给jsp

为什么?

谢谢

2 个答案:

答案 0 :(得分:2)

我认为这是因为EL使用getter来获取bean的属性。

Person idnumber的{​​@ 1}} bean获取器不是getIdnumberisIdnumber而是getID,因此您可以看到错误,说明属性'idnumber'可以在类型model.Person上找不到。

userName的getter相同,它不是getUserName,而是getUsername

答案 1 :(得分:1)

您应将EL更改为name.username,或者您应更改Person类并将方法重命名为getUserName()(EL中userName中的N为大写,但不是大写的在你的Person类中)