2012-09-18 7 views
1

스프링 태그에 익숙하지 않아서 지금 당장 이해할 수없는 몇 가지 문제에 휩싸여있는 것처럼 보입니다.숨겨진 필드를 생성하는 스프링 선택 태그

내 JSP에서 두 가지 선택 태그를 표시하고 그들이 ArrayList에 의해 백업됩니다 여기지도는 코드입니다 그들

<form:select path="prsBTOData[${status.index}].colors" items="${prsBTOData.colors}" 
cssClass="productDetailsSelect"/> 

색상 배열리스트를 기본으로하고 있습니다

<form:select path="prsBTOData[${status.index}].fonts" items="${prsBTOData.fonts}" 
cssClass="productDetailsSelect" > 
글꼴이 Map에 의해 뒷받침되는 동안 생성 된 HTML은

<select multiple="multiple" class="productDetailsSelect" name="prsBTOData[0].colors" 
    id="prsBTOData0.colors"> 
    <option selected="selected" value="Red">Red</option> 
    <option selected="selected" value="Green">Green</option> 
    <option selected="selected" value="Black">Black</option> 
</select> 
<input type="hidden" value="1" name="_prsBTOData[0].colors"> 

입니다. oft는 왜 multiple="multiple"을 수행하고 어떤 드롭 다운을 표시하지 않고 단지 RED을 선택된 값으로 보여주는 반면, 드롭 다운 옵션을 가진리스트를 기대하고 있었는지는 확실합니다. 왜이 숨겨진 필드가 생성되는지, 그 목적은 무엇인지 확실하지 않습니까?

답변

0

form:select에서 items 속성은 선택 상자에 표시해야하는 항목의 목록입니다. path 특성은 선택한 값으로 바인딩 된 속성입니다.

arraylist (여러 값을 가짐)를 경로로 지정 했으므로 spring은 선택된 다중 값을 원한다고 가정합니다.

당신은 다음과 같이 제공 할 수 있습니다

<form:select path="prsBTOData.color" items="${prsBTOData.colors}"/> 

(당신이 prsBTOData에 대한 color 속성이 가정) 및 정적/참조 데이터 아래 (색상, 글꼴) 유지하기위한 별도의 모델 객체를 사용하는 것이 좋습니다 :

<form:select path="prsBTOData.color" items="${referenceData.colors}"/>