2009-12-11 2 views
1

Я получил этот час: DataTable и формы:Обновление Bean от JSF DataTable

<h:form> 
<h:dataTable value='#{bean.allData.dataItems}' var='item'> 
    <h:column> 
    <h:outputText value='#{item.id}' /> 
    </h:column> 

    <h:column> 
    <h:inputText value='#{item.name}' /> 
    </h:column> 
</h:dataTable> 

<h:commandButton value="Save" action="#{bean.saveEntries}"/> 
</h:form> 

Так таблица показывает идентификатор и текстовое поле с именем в это работает.. Когда пользователь нажимает кнопку, я бы хотел, чтобы он сохранил изменения в поле имени.

DataBean имеет:

private Vector<ItemBean> dataItems; 

// constructor here 

public void setDataItems(Vector v) { 
    dataItems = v; 
} 

public Vector getDataItems() { 
    return dataItems; 
} 

и ItemBean имеет ...

private String id; 
private String name; 

// setter for both 
// getter for both 

Bean имеет переменную 'ALLDATA' типа 'DataBean'.

Bean также имеет метод saveEntries(), который в настоящее время пуст (поскольку я не уверен, как он работает). Как я могу ссылаться на входы для установки этих значений?

ответ

1

JSF уже сделал это во время фазы UPDATE MODEL VALUES. Распечатайте/отлаживайте локальные переменные, и вы увидите. Все, что вам нужно сделать в методе сохранения, - это просто сохранение данных в каком-то хранилище данных.

Смотрите также следующие статьи для получения более подробной информации и примеров:

  1. Using datatables.
  2. Debug JSF lifecycle.
Смежные вопросы