1) Для этого вы должны использовать bind rich: scrollableDataTable с экземпляром HtmlScrollableDataTable в базовом компоненте.
В вспомогательном компоненте создайте его экземпляр с помощью методов доступа, а затем вы можете соответствующим образом инициализировать его с помощьюдобавление компонентов inputText.Добавьте actionListeners к этим компонентам ввода, а затем в слушателях вы можете добавить эти значения inputText как outputText в таблицу снова как строки соответственно.
2) В противном случае вы можете использовать inputText вместо outputText и отключить последующие строки, а затемВо-первых, поэтому могут отображаться только данные - предотвращая ввод.
<rich:scrollableDataTable value="{resultList}" var="result">
<rich:column>
<f:facet name="header">Name</f:facet>
<h:inputText value="#{result.name}" disabled ="#{!result.isFirstRow}"/>
</rich:column>
<rich:column>
<f:facet name="header">Category</f:facet>
<h:inputText value="#{result.category}" disabled ="#{!result.isFirstRow}"/>
</rich:column>
</rich:scrollableDataTable>
Backing Bean:
//---
public void initialize(){
resultList.add(new Result("", "", true)); // Setting 1st input row enabled
}
public void inputListener(ActionEvent event){
// appending object based on input to the resultList
resultList.add(new Result(inputName, inputValue, false));
// added a boolean field to identify rows added later & to make them enable/disable accordingly
}
//---
Я не знаком с Richfaces, но пытался добиться этого, как я делалэто с IceFaces.