2012-03-05 2 views
0

JSP 페이지에서 Java 객체 안에있는 배열의 값을 얻으려면 어떻게해야합니까? JSP 페이지에 내가 내 질문은 내가 개체 OBJ에서 재산 문자열 [] 예를 얻는 얼마나 그래서Java 객체 내에서 배열에 액세스

${obj.property} 

같은 개체를 호출 할 수 있도록

나는 객체의 속성을 설정?

<c:forEach var="prop" items="${obj.example}"> 
       <td>${prop}</td> 
</c:forEach> 

나는 클래스 obj.Obj는 부동산 속성 '예' 이없는 분명 내가 밖으로 데이터를 얻을 수 없습니다 말해 오류를 얻을.

실제 오류 :

org.apache.jasper.JasperException : javax.el.PropertyNotFoundException : 클래스 'roommate.Roommate이'재산 'favProfessors'을 가지고 있지 않습니다.

javax.el.PropertyNotFoundException : 나뿐만 아니라 내 서블릿의 객체를 생성

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) 
    { 

    } 

} 

: 클래스 'roommate.Roommate'가없는 재산 'favProfessors'

을 그리고 내 실제 클래스 공물을 가져 가라.

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); 

내가 이전에 질문했지만 명확한 대답을받지 못했다. 클래스 'roommate.Roommate이'재산 'favProfessors을'이없는 : 내 문제는 내가 최고

+0

http://stackoverflow.com/questions/5088625/how-to-get-an-object-of-java-class-from-jsp – austin

+0

앞으로 질문 할 때 ' 무슨 일이 벌어지고 있는지 이해하고 그것을 실행/테스트하지 않았습니다. 대신 실제 실행/테스트 한 ** 실제 ** 코드를 표시하십시오. 이전 질문에 * 올바른 * 코드가 포함되어 있습니다. 지나치게 일반적인 질문을하지 마십시오. 실제적이고 구체적인 코드에 대한 실제적이고 구체적인 문제에 대해 질문하십시오. – BalusC

+0

사실 내 이전 질문은 실제 코드가 아니 었습니다 ..이 질문의 마지막 두 코드 스 니펫은 실제 코드 – user975044

답변

0

javax.el.PropertyNotFoundException에서 언급 한 내 대해 forEach에서 혼자 JSP에서 데이터를 당기는 생각

자바가 맞습니다. 해당 클래스에 getFavProfessors() 메서드가 없습니다. 대신 ${roommate.professors}를 사용하거나 getFavProfessors()로 getter 메소드 이름을 수정 : 당신은 두 가지 옵션이 있습니다

public String[] getProfessors() 
{ 
    return favProfessors; 

} 

: 그것은 대신 다음입니다.

대부분의 시동기가 생각하는 것과는 달리 EL은 개인 속성에 직접 액세스하지 않습니다. EL은 Javabeans specification에 따라 public getter/setter 메서드를 호출합니다. 그 뒤에있는 실제 사유 재산은 전혀 다른 이름이거나 전혀 존재하지 않을 수도 있습니다.