如何在jsp页面中获取位于java对象内的数组的值?
我已经设置了一个对象属性,以便在jsp页面中我可以像这样调用对象
${obj.property}
我的问题是如何从Object obj获取属性String []示例?
<c:forEach var="prop" items="${obj.example}">
<td>${prop}</td>
</c:forEach>
我得到的错误告诉我类obj.Obj没有属性属性'example' 显然我没有得到数据。
实际错误:
org.apache.jasper.JasperException:javax.el.PropertyNotFoundException:类'roommate.Roommate'没有属性'favProfessors'。
javax.el.PropertyNotFoundException:类'roommate.Roommate'没有属性'favProfessors'
我的实际班级:
package roommate;
public class Roommate{
public String firstname;
public String lastname;
public String gender;
public String place;
public String[] favProfessors;
public Roommate(String fname, String lname, String roommateGender, String hangout,String[] professors) {
firstname= fname;
lastname= lname;
gender= roommateGender;
place= hangout;
favProfessors= professors;
}
public String getFirstname()
{
return firstname;
}
public void setFirstname(String newFirstname)
{
this.firstname = newFirstname;
}
public String getLastname()
{
return lastname;
}
public void setLastname(String newLastname)
{
this.lastname = newLastname;
}
public String getGender()
{
return gender;
}
public void setGender(String newGender)
{
this.gender = newGender;
}
public String getHangout()
{
return place;
}
public void setHangout(String newPlace)
{
this.place = newPlace;
}
public String[] getProfessors()
{
return favProfessors;
}
public void setProfessors(final String[] newfavProfessors)
{
this.favProfessors = newfavProfessors;
}
public void addRoommate(String fname, String lname, String roommateGender, String hangout,String[] professors)
{
}
}
我在我的servlet中创建对象以及Atrribute
String [] profArray = request.getParameterValues("professor");
Roommate roommate= new Roommate(
session.getAttribute("fname").toString(),
session.getAttribute("lname").toString(),
session.getAttribute("gender").toString(),
session.getAttribute("hangout").toString(),
profArray);
session.setAttribute("roommate",roommate);
我早些时候问了这个,但没有得到明确的答案。我认为我的问题是在我在顶部提到的forEach中仅在jsp中提取数据
答案 0 :(得分:0)
javax.el.PropertyNotFoundException:类'roommate.Roommate'没有属性'favProfessors'
Java是对的。您在该课程中没有getFavProfessors()
方法。它取而代之的是:
public String[] getProfessors()
{
return favProfessors;
}
您有2个选项:改为使用${roommate.professors}
,或将getter方法名称修改为getFavProfessors()
。
与大多数初学者认为的相反,EL不会直接访问私有属性。 EL只根据Javabeans specification调用公共getter / setter方法。它背后的真正私有财产可以有一个完全不同的名称,甚至根本不存在。