Как получить все строки данных jsf или PrimeFaces программно - PullRequest
1 голос
/ 14 февраля 2012

Я использую datatable, и в каждой строке есть selectonemenu в качестве столбца.

На моей странице есть кнопка. Когда она нажата, я хочу проверить все строки данных, найти выбранный пункт меню selectone и создать базу данных в зависимости от выбранного значения.

Есть ли более простой способ без использования программного способа или какого-либо решения моих кодов?

Вот мой код:

Здесь я просто попытался найти выходной текст, но он не работал.

private DataTable myTable//primefaces datatable;



for ( UIComponent row : myTable.getChildren()) {
            HtmlOutputText  a=  (HtmlOutputText) row.findComponent("bname");

            System.out.println("click"+a.getValue());       

        }

Ответы [ 2 ]

0 голосов
/ 15 февраля 2012

Привязать атрибут значения datatable к списку POJO. Столбец таблицы соответствует члену POJO.

public class MyPOJO{
public String column1;
public String column2;
public String column3;
public String column4;
    //setters and getters here ....
}

@ManagedBean(name="beanDetails")
@ViewScoped
public class MyBean {
public List<MyPOJO> list_POJO;
private HashMap<String,String> fieldValues;
    //setters and getters here ....
}

<p:dataTable id="myTable" value="#{beanDetails.list_POJO}" var="dataItem"> 
<p:column>
    <f:facet name="header">
       <h:outputLabel value="Column 1" />
    </f:facet>

   <p:cellEditor>
        <f:facet name="output">
            <h:outputLabel value="#{dataItem.column1}" />
        </f:facet>

        <f:facet name="input">
              <p:selectOneMenu id="relevance" value="#{dataItem.column1}">
                     <f:selectItems value="#{beanDetails.fieldValues}"/>
              </p:selectOneMenu>
        </f:facet>
   </p:cellEditor>
</p:column>
   .... 
   ....
</p:dataTable>  

<p:commandButton value="Submit" actionListener="#{beanDetails.submitDetails}"/>

А в submitDetails вы можете просматривать записи с датами, используя list_POJO.

0 голосов
/ 14 февраля 2012

Просто привяжите выбранные значения выборщиков к карте.

<p:dataTable .... rowIndexVar="index">
   ... somwhere in column
   <p:selectOneMenu value="#{backingBean.values[index]}" >
       ... 
...