jsp页面如下所示:(部分)
<logic:iterate id="tags" name="tagList">
<tr>
<td align="center"><a href="">${tags.tName}</a></td>
</tr>
</logic:iterate>如果这样的话,页面报的错误为:
javax.el.PropertyNotFoundException: Property 'tName' not found on type entity.Tags
说我的实体类里面没有tName这个属性。
下面是实体类的代码(部分):
private String tName;
public String getTName() {
return tName;
}
public void setTName(String name) {
tName = name;
}
Action如下:
public class TagAction extends DispatchAction{ private TagBiz tagBiz=new TagBiz();
public ActionForward toList(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws IOException {
List list=tagBiz.search();
request.setAttribute("tagList", list);
return mapping.findForward("index");
}
}
为什么会这样?
<logic:iterate id="tags" name="tagList">
<tr>
<td align="center"><a href="">${tags.tName}</a></td>
</tr>
</logic:iterate>如果这样的话,页面报的错误为:
javax.el.PropertyNotFoundException: Property 'tName' not found on type entity.Tags
说我的实体类里面没有tName这个属性。
下面是实体类的代码(部分):
private String tName;
public String getTName() {
return tName;
}
public void setTName(String name) {
tName = name;
}
Action如下:
public class TagAction extends DispatchAction{ private TagBiz tagBiz=new TagBiz();
public ActionForward toList(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws IOException {
List list=tagBiz.search();
request.setAttribute("tagList", list);
return mapping.findForward("index");
}
}
为什么会这样?
public class TagBiz {
private TagDAO tagDAO=new TagDAO();
public List search()
{
List list=tagDAO.search();
return list;
}
}
TagDAO如下:
public class TagDAO extends BaseJdbcDAO{
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
public List search()
{
List list=new ArrayList();
String sql="select * from tag";
try {
conn=this.getConn();
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
while(rs.next())
{
Tags tag=new Tags();
tag.setTId(rs.getInt("t_id"));
tag.setTName(rs.getString("t_name"));
tag.setTCount(rs.getInt("t_count"));
list.add(tag);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
this.closeAll(conn, pstmt, rs);
}
return list;
}
<c:forEach var="tags" items="${requestScope.tagList}">
<tr>
<td align="center"> <a href="">${tags.tName} </a> </td>
</tr>
</c:forEach>
水平有限,没看出代码有问题。用c标签试下,struts的logic标签不熟。
把 ${tags.tName}改成
<bean:write name="tags" property="tName" />
试试有没有值取出。
public String getTName() {
return tName;
}
public void setTName(String name) {
tName = name;
}
get,set方法是手写的还是工具生成?建议用工具自动生成试一下。
我现在开始怀疑了。既然这个东西还不成熟,拿出来害人,
你的变量(tName)的命名不符合javabean的命名规范