javax.el.PropertyNotFoundException:在类型java.lang.String上找不到属性’tname’
我之前使用过scriptlet,但现在我切换到了mvc。 我无法在JSP页面上检索值并获得错误:
javax.el.PropertyNotFoundException: Property 'tname' not found on type java.lang.String
豆的代码:
public class regForm extends org.apache.struts.validator.ValidatorForm implements Iprafunctions { private String tname = null; private String tfee = null; public String getTfee() { return tfee; } public void setTfee(String tfee) { this.tfee = tfee; } public String getTname() { return tname; } public void setTname(String tname) { this.tname = tname; } public regForm() { super(); } }
动作控制器:
public ActionForward mvc(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { regForm reg = (regForm) form; String sql = "Select tname,tfee from addtest order by tname"; ResultSet rs = SQLC.getData(sql, null); Collection myBeans = new ArrayList(); while (rs.next()) { String testname = rs.getString("tname"); String testfee = rs.getString("tfee"); reg.setTname(testname); reg.setTfee(testfee); myBeans.add(reg.getTname()); myBeans.add(reg.getTfee()); } request.setAttribute("myBeans", myBeans); return mapping.findForward(SUCCESS); }
在JSP页面中访问
Name Fee
我想你是直接在arraylist中添加名字和费用,但你应该在arraylist中添加整个regForm
对象。
而不是下面的代码
myBeans.add(reg.getTname()); myBeans.add(reg.getTfee());
你需要这样做
myBeans.add(reg);
此外,不要使用从表单中获得的相同对象。 尝试创建新对象并添加arraylist并尝试使用generics。
编辑:
while (rs.next()) { String testname = rs.getString("tname"); String testfee = rs.getString("tfee"); regForm beanObject = new regForm(); beanObject.setTname(testname); beanObject.setTfee(testfee); myBeans.add(beanObject); }
实际上,您正在Collection
中添加字符串,并且您正在尝试调用
getTName()
by ${reg.tname}
将整个bean添加到您的集合中或者只需用${reg}
替换JSTL