在bean中有一属性名称为
private String tName;
public String getTName() {
return tName;
}
public void setTName(String name) {
tName = name;
}
在页面中代码操作如下:
<jsp:useBean id="person" class="com.test.el.Person" scope="session"></jsp:useBean>
${person.tName};此时会出现异常如下:
org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 118: </head>
9: <jsp:useBean id="person" class="com.fit.el.Person" scope="session"></jsp:useBean>
10: <body>
11: ${person.tName};
12: </body>
13: </html>javax.el.PropertyNotFoundException: Property 'tName' not found on type com.fit.el.Person而如果属性的名称为name,对应的get/set方法中都为name,EL中调用时也为name时就没有问题。为什么会这样?谁能把EL操作原理说一下。
private String tName;
public String getTName() {
return tName;
}
public void setTName(String name) {
tName = name;
}
在页面中代码操作如下:
<jsp:useBean id="person" class="com.test.el.Person" scope="session"></jsp:useBean>
${person.tName};此时会出现异常如下:
org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 118: </head>
9: <jsp:useBean id="person" class="com.fit.el.Person" scope="session"></jsp:useBean>
10: <body>
11: ${person.tName};
12: </body>
13: </html>javax.el.PropertyNotFoundException: Property 'tName' not found on type com.fit.el.Person而如果属性的名称为name,对应的get/set方法中都为name,EL中调用时也为name时就没有问题。为什么会这样?谁能把EL操作原理说一下。
==>
1.<jsp:useBean id="person" class="com.fit.el.Person" scope="session"/>
2.或者:
<jsp:useBean id="person" class="com.fit.el.Person" scope="session">${person.tName}</jsp:useBean>
wf1006 你这种办法我没有试能不能解决,但如果是从servlet传出来的就不行了。请高手解释一下EL为什么会这样。难道是BUG?
这样就可以用el取值了!
<jsp:useBean id="person" class="com.test.el.Person" scope="session"></jsp:useBean>
这样可以用<%=person.getTname%>!
return tName;
}不是getTName(),而是gettName
用eclipse产生的getter是可以访问的!
http://blog.csdn.net/liwen19840617/archive/2009/12/23/5060845.aspx
xName getxName setxName
XName getXName setXName
我这自动生成的 gettName 你自动生成怎么会是getTName上面说的对 问题就出在这了
是你的那个属性(tName)命名不正确!!
如果你是这样命名的话,调用时就找不到它的get()方法和set()方法!
记住了!以后命名别一个小写后面就跟一个大写了!!
如:
userName
别命名成
uName!
它就是根据get()方法和set()方法来找值的!