주어진 코드는별로 의미가없는 것처럼 보입니다. 관용구 더 같이있다 :
여기
<h:selectOneMenu value="#{backingBean.typeCode}">
<f:selectItems value="#{backingBean.typeCodes}" var="typeCode" itemLabel="#{typeCode}" itemValue="#{typeCode}" />
</h:selectOneMenu>
, #{backingBean.typeCode}
처음에 기본 선택 값을 나타내는 단일 값을 반환하는 속성입니다. 비어있는 경우 처음에는 값이 선택되지 않습니다. 사용자가 양식을 제출하면 사용자가 선택한 값을 받게됩니다. 귀하의 코드는 Long
입니다.
#{backingBean.typeCodes}
은 사용자가 선택할 수있는 모든 값의 모음을 반환하는 속성입니다. 귀하의 코드는 List<Long>
입니다.
귀하의 값은 단순한 값이므로 여기에서 레이블과 값은 동일합니다. 예를 들어, 사용자라면 itemLabel에 #{user.name}
, itemValue에 #{user.id}
을 사용할 수 있습니다. itemValue로 렌더링되는 것은 무엇이든 selectOneMenu
구성 요소의 값 바인딩으로 푸시 된 것입니다.
다른 힌트 하나 : 일반적으로 SelectItem
유형을 사용하는 것을 피해야합니다. JSF 특정 유형 대신 간단한 도메인 오브젝트 및 그 콜렉션을 선호하십시오.
<h:selectOneMenu>
<c:forEach items="#{price.typeCode}" var="code">
<f:selectItem itemValue="#{code}" itemLabel="#{code}"/>
</c:forEach>
</h:selectOneMenu>
은 1 호선과 2 호선 사이의 아주 명확한 차이가 아니다 : 업데이트 select05NoSelection.initialCollectionValues 및 select05NoSelection.hobbitList – sergionni
의견의 차이가 무엇 – sergionni
구성 요소의 "값"은 현재 선택된 개체이며, f : selectItems의 "값"은 목록에 표시되어야하는 값입니다. ''는' '를 포함하여 모든' '구성 요소에 대해 동일한 방식으로 사용됩니다. –
meriton