javax.el.PropertyNotFoundException:在类型java.lang.String上找不到属性'tname' [英] javax.el.PropertyNotFoundException: Property 'tname' not found on type java.lang.String
本文介绍了javax.el.PropertyNotFoundException:在类型java.lang.String上找不到属性'tname'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我之前使用过scriptlet,但现在我切换到了mvc。我无法在JSP页面上检索值并收到错误:
I was using scriptlets earlier, but now I switched to the mvc. I am not able to retrieve values on to the JSP page and getting errors:
javax.el.PropertyNotFoundException: Property 'tname' not found on type java.lang.String
Bean的代码:
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页面访问
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<table>
<tr><td>Name</td><td>Fee</td></tr>
<c:forEach var="reg" items="${myBeans}">
<tr>
<td><c:out value="${reg.tname}"></c:out></td>
<td><c:out value="${reg.tfee}"></c:out></td>
</tr>
</c:forEach>
</table>
推荐答案
我想你是直接添加名字和费用到arraylist,但你应该在arraylist中添加整个 regForm
对象。
I think you are adding the names and the fee directly to the arraylist, but you should be adding the whole regForm
object in the arraylist.
而不是下面的代码
myBeans.add(reg.getTname());
myBeans.add(reg.getTfee());
你需要做的事情
myBeans.add(reg);
此外,不要使用从表单中获得的相同对象。尝试创建新对象并添加到arraylist并尝试使用泛型。
moreover dont use the same object that you got from the form. Try to create new objects and add in the arraylist and try to use 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);
}
这篇关于javax.el.PropertyNotFoundException:在类型java.lang.String上找不到属性'tname'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文