JSF 데이터 가능한 내부의 SelectOneMenu에서 값을 얻으려면 어떻게해야합니까?
-
13-09-2019 - |
문제
나는 많은 행이있는 JSF 데이터 가능이 있으며, 각 행은 다음과 같이 selectonemenu가 있습니다.
<h:form
<h:dataTable id="myTable"
binding="#{myBean.dataTable}"
value="#{myBean.dataTableRows}" var="row"
first="0" rows="0" dir="LTR" frame="hsides" rules="all">
<h:column>
<f:facet name="header">
<h:outputText value="Sample Name" />
</f:facet>
<h:outputText value="#{row.sampleName}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Role" />
</f:facet>
<h:selectOneMenu value="#{row.role}"
id="roleInput">
<f:selectItems value="#{myBean.allRoles}" />
</h:selectOneMenu>
</h:column>
</h:dataTable>
<h:commandButton value="Save" action="#{myBean.save}" />
</h:form>
그러나 저장 메소드에서 각 행에서 선택한 역할을 어떻게 얻는 지 알 수없는 것 같습니다. 다시 말해, 각 행의 값을 저장하고 싶습니다. 입력 텍스트 상자를 저장하는 방법을 설명하는이 기사를 보았습니다.
http://balusc.blogspot.com/2006/06/using-datatables.html#editabledatatable
그러나 H : SelectonEMenu 사례에는 적용되지 않는 것 같습니다. 누구든지 이것을하는 예제 코드가 있습니까?
감사!
해결책
나는 당신의 테이블이 당신의 콩에 묶인 것을 봅니다. 콩에서는 getDatatable () 메소드를 사용하여 액세스 할 수 있습니다. Java Doc 말한다 :
public Object getRowData()
Return the data object representing the data for the currently selected row index, if any.
따라서 코드를 작성하면 다음과 같이합니다.
List<String> selectedRowData = (List<String>) getDataTable().getRowData()
그런 다음 사용자가 선택한 모든 필드에 액세스 할 수 있습니다. 나는 이것을 내 자신의 프로젝트와 그 일에 사용하고 있습니다. 유일한 차이점은 IM이 대신 내 자신의 유형으로 캐스팅하는 것입니다. List<String>
다른 팁
양식에는 명백한 오류가 없습니다. 저장 메소드가 호출되지 않으면 A를 추가하십시오. 메시지 문제의 원인을 추적하는 데 도움이되는 양식에 태그를 지정하십시오. 문제를 재현하고 사용중인 JSF 구현 및 버전을 명시하는 샘플 Bean을 게시하면 도움이됩니다.
제휴하지 않습니다 StackOverflow