JSF 데이터 가능한 내부의 SelectOneMenu에서 값을 얻으려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/988869

  •  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을 게시하면 도움이됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top