报错总是说我的houseInfo中没有uId ,但是我在HouseInfo(实体类中)仔细看过了 private int uId ; 和相应的get set 都写了啊javax.servlet.jsp.JspException: Exception accessing property uId for bean houseInfo: java.lang.NoSuchMethodException: Unknown property 'uId'
at org.apache.struts.taglib.logic.CompareTagBase.condition(CompareTagBase.java:194)
at org.apache.struts.taglib.logic.EqualTag.condition(EqualTag.java:46)
at org.apache.struts.taglib.logic.ConditionalTagBase.doStartTag(ConditionalTagBase.java:174)
at org.apache.jsp.jsps.list_jsp._jspx_meth_logic_005fequal_005f0(list_jsp.java:991)
at org.apache.jsp.jsps.list_jsp._jspService(list_jsp.java:268)code]
[code=Java]<logic:iterate id="houseInfo" name="list">
<tr>
<td width='250' class="table_title">
<bean:write name="houseInfo" property="title" />
<logic:equal name="houseInfo" property="uId" value="${sessionScope.userId}">
[<a href="...">编辑</a>][<a href="...">删除</a>]
</logic:equal>

解决方案 »

  1.   

    在该页面前的action中 使用了 HouseInfoForm houseInfoForm = (HouseInfoForm)form;
    List list = biz.search(houseInfoForm.getItem());
    HouseInfo house = (HouseInfo)list.get(1);
    System.out.println(house.getUId());
    System.out.println(house.getRent());
    request.setAttribute("list", list);
    uId 和 rent 都是正常输出的 说明list 中是有值的 , 晕了 错在哪了呢?
      

  2.   

    错误提示的位置是bean:houseInfo<logic:equal name="houseInfo" property="uId" value="${sessionScope.userId}">
    我想问一下上面一行代码中的"uId"是谁的属性!
      

  3.   

    uId 是 上面 <logic:iterate/> 标签中 name="list" 中一个 对象的类型  是一个实体类 用来封装这里需要显示的数据,  其中 
    <bean:write name="houseInfo" property="title" />
    就正常显示了
    .public class HouseInfo implements Serializable { /**
     * 
     */
    private static final long serialVersionUID = 1L;

    private int houseId ;
    private int uId ;
    private int room ;
    private int hall ;
    private double rent ;
    private String title ;
    private Date issuanceDate ;
    public Date getIssuanceDate() {
    return issuanceDate;
    }
    public void setIssuanceDate(Date issuanceDate) {
    this.issuanceDate = issuanceDate;
    }
    public double getRent() {
    return rent;
    }
    public void setRent(double rent) {
    this.rent = rent;
    } public String getTitle() {
    return title;
    }
    public void setTitle(String title) {
    this.title = title;
    }
    public int getUId() {
    return uId;
    }
    public void setUId(int id) {
    uId = id;
    } public int getHall() {
    return hall;
    }
    public void setHall(int hall) {
    this.hall = hall;
    }

    public int getRoom() {
    return room;
    }
    public void setRoom(int room) {
    this.room = room;
    }

    }
      

  4.   

    听朋友的 把实体类中的uId 改成了userId , 然后连及DAO action jsp 页面中的名称都做了相应修改 , 居然就行了, 晕 , 不带这么玩的!!!
      

  5.   

    我又把实体类中属性 userId  改回到了 uId ,其中也明明这样写了 
    public int getUId() {
    return uId;
    }
    public void setUId(int id) {
    uId = id;
    }但是居然还给我报错说是
    javax.servlet.jsp.JspException: No getter method for property uId of bean houseInfo
    at org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:973)
    at org.apache.struts.taglib.bean.WriteTag.doStartTag(WriteTag.java:225)
    at org.apache.jsp.jsps.list_jsp._jspx_meth_bean_005fwrite_005f1(list_jsp.java:984)
    at org.apache.jsp.jsps.list_jsp._jspService(list_jsp.java:265)
    哪位高人帮忙解释一下啊  怎么会这样呢? 会不会uId在这里是什么关键字啊?
      

  6.   

    uId虽然不是关键字,但相应的getter和setter应该是:    public Long getuId() {
            return uId;
        }    public void setuId(Long uId) {
            this.uId = uId;
        }
      

  7.   

    get/set方法后面的第二个字母不要是大写,不然就会有问题
      

  8.   

       public int getUId() {
            return uId;
        }
        public void setUId(int id) {
            uId = id;
        }你指的是 "i " 不要大写?
      

  9.   


    在使用get ,set 属性时前面两定字母不能大写,要不然struts标签找不到该属性的get,set 方法。
      

  10.   


    到底是什么问题了?楼主问题已经解决不知楼主用的什么数据库 
    如果是mysql的话,那么这个uid 在数据库中好像也会出现问题。