当前位置: 代码迷 >> Java Web开发 >> 关于EL表达式的有关问题
  详细解决方案

关于EL表达式的有关问题

热度:515   发布时间:2016-04-10 22:52:47.0
关于EL表达式的问题
错误 
javax.el.PropertyNotFoundException: Property 'posterid' not found on type java.lang.String


代码1:
 <c:forEach var="mc" items="pageModel.resultList" varStatus="s">
     <tr>
     <td><input readonly="readonly" type="text" value="${mc.posterid }" name="posterid"/></td>
     <td><input type="text" value="${mc.postername }" name="postername"/></td>
     <td><input type="text" value="${mc.posterphone }" name="posterphone"/></td>
     <td><a href="pper!updTest3.action">修改</a></td>
     <td><a href="pper!delTest4.action">删除</a></td>
     </tr>
     </c:forEach>


代码2:
public String test1() throws Exception{
pageModel = pd.queryPoster(pi, currentPage, pageSize);



return "testok";
}


代码3:
public PageModel queryPoster(Posterinfo pp,int currentPage,int pageSize)
{
StringBuilder querySql=new StringBuilder("select * from poster");
StringBuilder countSql=new StringBuilder("select count(*) from poster ");
StringBuilder whereSql=new StringBuilder(" where 1=1 ");
StringBuilder orderSql=new StringBuilder(" order by posterid");
List params=new ArrayList();
if(pp.getPosterid()!=null)
{
whereSql.append(" and posterid like ?");
params.add("%"+pp.getPosterid()+"%");
}
if(pp.getPostername()!=null&&!pp.getPostername().trim().equals(""))
{
whereSql.append(" and postername like ?");
params.add("%"+pp.getPostername()+"%");
}

PageModel pageModel=queryForPageModel(Posterinfo.class, currentPage, pageSize, querySql, countSql, whereSql, orderSql,params);
return pageModel;

}


代码4:
private Integer posterid;
private String postername;
private String posterphone;
public Integer getPosterid() {
return posterid;
}
public void setPosterid(Integer posterid) {
this.posterid = posterid;
}
public String getPostername() {
return postername;
}
public void setPostername(String postername) {
this.postername = postername;
}
public String getPosterphone() {
return posterphone;
}
public void setPosterphone(String posterphone) {
this.posterphone = posterphone;
}
@Override
public String toString() {
return "Posterinfo [posterid=" + posterid + ", postername="
+ postername + ", posterphone=" + posterphone + "]";
}


各位大神看看 纠结了我两个小时 郁闷了 
------解决方案--------------------
jsp文件items哪里错了!!要用el的
------解决方案--------------------
posterid 改成string
------解决方案--------------------
确认Posterinfo? 这个类是否是public class
------解决方案--------------------
posterid 改成string
------解决方案--------------------
你后台是action还是Servlet?  pageModel 是怎么传入前台的? 如果放在request里面应该是
${pageModel.resultList}

------解决方案--------------------
嗯,${pageModel.resultList}
------解决方案--------------------
javax.el.PropertyNotFoundException: Property 'posterid' not found on type java.lang.String

没有在类型String中找到属性posterid。
这说明你的mc是String类型,请检查你的resultList中到底存储的是什么值。
------解决方案--------------------
public String getPosterid() {
        return String.valueOf(posterid);
    }
------解决方案--------------------
2楼是正解~如果用<s:iterator>就可以那样写
------解决方案--------------------
引用:
posterid 改成string


或者将string转成int也是可以的,可以使用包装类Integer
  相关解决方案