2011-09-29 5 views
5

열거 형 클래스 값에서 드롭 다운 목록을 채우는 문제가 있습니다. 내 열거 클래스 코드는 다음과 같습니다
드롭 다운 목록으로 열거 형 값

package abc.xyz.constants; 

public enum StateConstantsEnum 
{ 
      NEWYORK("NY"), 
      FLORIDA("FL"), 
      CALIFORNIA("CA"), 

    private String fullState; 

    private StateConstantsEnum(String s) 
    { 
     fullState = s; 
    } 

    public String getState() 
    { 
     return fullState; 
    } 
} 

내가 NEWYORK, 플로리다와 캘리포니아와 드롭 다운 목록을 채울합니다. 내가 만들고 봄 모델에 이런 식으로 목록을 추가하고 : 내가 사용 JSP의 드롭 다운을 채우기 위해 노력하고 그런 다음

List<StateConstantsEnum> stateList = new ArrayList<StateConstantsEnum>(Arrays.asList(StateConstantsEnum.values())); 

model.addAttribute("stateList", stateList); 

:

<select name="${status.expression}" name="stateLst" id="stateLst"> 
    <option value=""></option> 
     <c:forEach items="${stateList}" var="option"> 
       <option value="${option}"> 
        <c:out value="${option.fullState}"></c:out> 
       </option> 
     </c:forEach> 
</select> 

을하지만 예외를 "예외를 얻고있다 생성 : javax.el.PropertyNotFoundException : 'abc.xyz.constants.StateConstantsEnum'클래스에 'fullState'속성이 없습니다. "

이 문제를 어떻게 해결합니까? 많은 도움을 주셨습니다

답변

7

fullState은 비공개이며 접근자는 getState()입니다.

<c:out value="${option.state}"></c:out> 

또는 getter의 이름을 getFullstate()으로 변경하십시오. 당신의 JSP에서

+0

'이 맞을 것이라고 생각합니다. – kingori

+0

죄송합니다. 나는 작은 조각을 놓쳤습니다. 감사. 또 하나의 문제는 NEWYORK, FLORIDA 및 CALIFORNIA가 아니라 NY, FL, CA를 인쇄하는 것입니다. 어떤 생각? – BambooBlunder

+2

그런 다음'$ {option}'을 사용하십시오. 사실, "주 (fullstate)"라는 이름은 오해의 소지가 있습니다. 그것은 다른 방향입니다. 상태 약어가 있습니다. – BalusC

0

당신이처럼 사용할 수 있습니다 : 당신이 ITEMLABEL 및 itemValue을 지정 해달라고하면

<form:select path="*"> 
    <form:options items="${stateList}" itemLabel="fullState" /> 
</form:select> 

이 당신의 liste (stateList)의 모든 요소를 ​​추출하는 것, 그것이 당신의 열거 할게요 값 물론 GetFullState에 getter를 설정하고 페이지에 springmvc 태그를 선언해야합니다.