Передача параметра из базы данных PrimeFaces в управляемый компонент - PullRequest
1 голос
/ 12 февраля 2012

У меня есть данные с простыми числами:

<p:dataTable id="idCrawledDataTable"
    var="crawledData"
    value="#{crawlerCorpusTreatmentBean.crawledDataModel}"
    rowKey="#{crawledData.id}"
    rows="10"
    scrollable="true"
    scrollHeight="300"
    selection="#{crawlerCorpusTreatmentBean.crawledData}"
    style="width: 850px;">

 <f:facet name="header">
     RadioButton Based Selection
 </f:facet>

  <p:column selectionMode="single"
     style="width: 12px;"/>

  <p:column headerText="id"
     style="width: 20px;">
         #{crawledData.id}
  </p:column>

  <p:column headerText="Sritis"
      style="40px;">
          #{crawledData.domain}
  </p:column>

  <p:column headerText="URL"
      style="width: 450px;">
          #{crawledData.url}
  </p:column>

</p:dataTable>

Все это заполнено значениями после вызова метода действия.Datatable имеет выбор радио-кнопки.Когда я выбираю один из переключателей и нажимаю командную кнопку, я перехожу к какому-либо методу, в котором я вызываю мой компонент, но все значения из данных, которые есть у моего компонента, равны нулю.

В витринах показано только, как отобразитьДанные в модальном окне, я не могу найти информацию о том, как передать параметры в управляемый компонент.Может быть, кто-то может помочь мне с этим?

1 Ответ

2 голосов
/ 13 февраля 2012

Работает только для меня.Возможно, ваша логика загрузки данных неверна (например, вы делаете это в методе получения) или метод equals() объекта, стоящего за rowKey, не работает.

Вот самодостаточный пример запуска, так чтоВы можете, по крайней мере, зафиксировать свою собственную ошибку:

<h:form>
    <p:dataTable value="#{bean.items}" var="item" selection="#{bean.item}" rowKey="#{item.id}">
        <p:column selectionMode="single" />
        <p:column headerText="id">#{item.id}</p:column>
        <p:column headerText="value">#{item.value}</p:column>
    </p:dataTable>
    <p:commandButton value="submit" action="#{bean.submit}" />
</h:form>

с

@ManagedBean
@ViewScoped
public class Bean implements Serializable {

    private List<Item> items;
    private Item item;

    @PostConstruct
    public void init() {
        items = new ArrayList<>();
        items.add(new Item(1L, "one"));
        items.add(new Item(2L, "two"));
        items.add(new Item(3L, "three"));
    }

    public void submit() {
        System.out.println(item);
    }

    public List<Item> getItems() {
        return items;
    }

    public Item getItem() {
        return item;
    }

    public void setItem(Item item) {
        this.item = item;
    }

}

, где Item имеет только свойства Long id и String value.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...