2012-06-21 3 views
0

맵의 키 세트를 드롭 다운 목록에 표시하고 사용자가 해당 키를 선택할 때 선택한 키 값을 선택하려고합니다.JSP에서 맵의 키 세트 표시하기

<form:options items="${alertsPrices}" /> 

위의 내용은 내 옵션 요소 (표준 HTML 양식이 아닌 스프링 양식을 사용해야 함)입니다. 이 순간에 키가 매핑되는 값이 아니라 선택한 키의 값이 전달됩니다.

또한 컨트롤러에서 전체지도 또는 키 집합으로 alertsPrices 값을 전달해야하는지 잘 모르겠습니다.

사용자는 드롭 다운 목록에서 키를 선택해야하며 이는 키 자체가 아닌 키 매핑 값을 전달합니다.

+0

"JSTL 양식"이 없으므로 양식에 맞춤 태그가있는 프레임 워크가 있습니다. 사용중인 프레임 워크로 질문에 태그를 지정하는 것이 좋습니다. –

+0

죄송합니다, 그것은 스프링 양식입니다, 나는 질문을 업데이 트됩니다. – csilk

답변

0

the documentation 읽기 :

항목은 일반적으로 수집 또는 항목 객체의 배열 로 채워집니다 때문이다. itemValue와 itemLabel은 bean 을 참조하기 만하면됩니다. 그렇지 않으면, 개체 자체 항목은 선택 상자에서지도의 모든 항목을 원하고, 옵션 레이블과 항목의 키와 같은 항목의 값을 원하는 경우,

그래서

을도 캐릭터 라인됩니다 옵션 값인 경우지도의 entrySet()items 속성에 전달하고 itemValue="value" itemLabel="key"을 사용해야합니다.

+0

문서의 빈 특성 부분을 따르고 있지 않습니다. 내가 사용하고있는 맵은 items.xml 설정에서 maptype으로 정의됩니다. 이 구성에 itemValue 및 itemLabel 속성을 추가해야합니까? – csilk

+0

아주 간단합니다. 태그는'items' 속성에 빈 컬렉션을 기대합니다. 'itemValue = "foo"'를 지정하면 (자), 태그는 bean로'getFoo()'를 호출 해, 생성하는 옵션의 값을 취득합니다. 그리고'itemLabel = "bar"를 설정하면 빈에 대해 getBar()를 호출하여 생성 된 옵션의 레이블을 가져옵니다. 귀하의 경우에는'Map.Entry' 인스턴스 컬렉션이 있습니다. 그리고'Map.Entry'는 키와 맵 엔트리의 값에 접근하기 위해 getKey()와 getValue()를 가지고 있습니다. –

+0

필자는 Spring이 map 키를 값으로 사용하고 맵 값을 목록의 레이블로 사용하는 기본 방법을 고수하기로 결정했습니다. 모든 도움에 감사드립니다. – csilk