日期:2014-05-18  浏览次数:20741 次

关于javabean中的属性
我在一个页面通过  
<jsp:useBean id="user" class="mypack.JspTest.userInfoBean" scope="request">
<jsp:setProperty name="user" property="*"/>
</jsp:useBean>
来获得上一个页面传来的参数,其中包括name(String类型),它储存了用户名信息。

之后,我使用:
<c:if test="${user.nameValid}">
welcome
</c:if>
来判断用户是否填写了用户名。

但结果Tomcat返回错误:An error occurred while getting property "nameValid" from an instance of class mypack.JspTest.userInfoBean(在获取一个来自mypack.JspTest.userInfoBean类实例的nameValid属性时发生了错误)
并提示发生了NULL指针异常。
可是我通过检测,bean中的name以被正确的赋值了。

我的bean是这样写的:
package mypack.JspTest;

public class userInfoBean {
private String name;
  private boolean nameValid;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public boolean isNameValid() {
if(name.equals(""))
nameValid=false;
else
nameValid=true;
return nameValid;
}

}

------解决方案--------------------
user.name不能获得name的值 因为是private
------解决方案--------------------
class
Java code

package com.auw;

public class userInfoBean { 
    private String name; 
    private boolean nameValid; 
    public void setName(String name) { 
        this.name = name; 
    } 
    public String getName() { 
        return name; 
    } 
    public boolean isNameValid() { 
        //return true;
        if("".equals(name)||name==null) 
            nameValid=false; 
        else 
            nameValid=true; 
        return nameValid; 
    } 

}