我正在尝试将信息从我的servlet传递给jsp,其中一些字段成功传递,而另一些则不传递。
这是我输入输入的初始页面:
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
。
为什么?
谢谢
答案 0 :(得分:2)
我认为这是因为EL使用getter来获取bean的属性。
Person
idnumber
的{@ 1}} bean获取器不是getIdnumber
或isIdnumber
而是getID
,因此您可以看到错误,说明属性'idnumber'可以在类型model.Person上找不到。
userName
的getter相同,它不是getUserName
,而是getUsername
答案 1 :(得分:1)
您应将EL更改为name.username
,或者您应更改Person
类并将方法重命名为getUserName()
(EL中userName中的N为大写,但不是大写的在你的Person类中)