2013-06-21 4 views
0

Я бы хотел, чтобы реализовать этот случай. (С использованием JSF 2.0 и primefaces 3.5)Вставить строки данныхТабличные строки на основе полей p: inputText

  • Есть около 10 primefaces inputTexts
  • Есть один primefaces DataTable
  • Есть предприятие по имени Соприкосновение с 10 свойствами, как (название, описание и т.д. ...)

  • Как наилучший способ добавить строки в dataTable после ввода в inputTexts и нажатия кнопки. ? (я не могу сохранять данные на БД. Только добавьте типизированных новые данные в DataTable новой строки)

спасибо,

ответ

2

так вот что вы бы сделали (10 раз), чтобы получить свой результат:

Начало с указанием в зависимости от того объектного компонента вы хотите, мы будем оставаться родовыми здесь, чтобы сделать это полезным для так многих хороших душ:

package pack; 

import javax.faces.bean.ManagedBean; 
import javax.faces.bean.RequestScoped; 

@ManagedBean 
@RequestScoped 
public class Entity { 

    private String entityProperty ; 

    public String getEntityProperty() { 
     return entityProperty; 
    } 

    public void setEntityProperty(String entityProperty) { 
     this.entityProperty = entityProperty; 
    } 


    public Entity(String e) { 
     this.entityProperty = e ; 
    } 
} 

Вы будете затем использовать этот Entity в бобе (который я назвал Bean). Мы делаем это, чтобы заполнить список, который dataTable мы будем перебирать для создания его строк. Вот боб:

package pack ; 

import java.util.ArrayList; 
import javax.faces.bean.ManagedBean; 
import javax.faces.bean.RequestScoped; 

@ManagedBean 
@RequestScoped 
public class Bean { 
    private String property ; 
    private ArrayList<Entity> list ; 

    public ArrayList<Entity> getList() { 
     return list; 
    } 

    public void setList(ArrayList<Entity> list) { 
     this.list = list; 
    } 

    public String getProperty() { 
     return property; 
    } 

    public void setProperty(String property) { 
     this.property = property; 
    } 

    public Bean() { 
     list = new ArrayList<Entity>(); 
    } 

    public void showInDataTable(){ 
     list.add(new Entity(property)); 
    } 

} 

Наконец, мы пришли на страницу презентации, экскурсия по primefaces site обычно дает представление о том, что использовать и как:

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:p="http://primefaces.org/ui"> 
    <h:head> 
     <title>StackOverflow</title> 
    </h:head> 
    <h:body> 
     <h:form> 
      <p:inputText value="#{bean.property}" /> 
      <p:commandButton value="show in dataTable" action="#{bean.showInDataTable}" update="dataTable"/> 
      <p:dataTable id="dataTable" value="#{bean.list}" var="o"> 
       <p:column> 
        <h:outputText value="#{o.entityProperty}" /> 
       </p:column> 
      </p:dataTable> 
     </h:form> 
    </h:body> 
</html> 

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

Удачи.

+0

Огромное спасибо @Gloserio за то, что помогли мне в этом вопросе. Это чистый и общий код. еще раз спасибо ... – Al2x

+0

Рад, что это тебе хорошо :). – Akheloes

0

Попробуйте следующие

  • Сделать Список из Контакт класс как значение таблицы.
  • В ActionListener метода CommandButton, создать новый Контакт класса и установить его свойство с соответствующего inputText.
  • Append, что вновь созданный объект в список
  • В CommandButton: процесс inputTexts, обновление Datatable

Что не требуется для хранения промежуточных результатов в базу данных

+0

Спасибо за информацию @Jitesh. Это будет полезно для меня в будущем. – Al2x

Смежные вопросы