【问题标题】:Using a Java EE Bean to Save a List of Form Data and print out data in a JSF XHTML DataTable使用 Java EE Bean 保存表单数据列表并在 JSF XHTML 数据表中打印数据
【发布时间】:2014-07-28 23:55:12
【问题描述】:

这是我的应用程序当前的工作方式。

1.用户填写“选民登记”XHTML 表格。

2.当用户点击提交时,通过使用SessionScoped CDI Java-EE文件保存值。

这是该文件的内容:

import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;

@Named
@SessionScoped
public class VoterBean implements Serializable{
    private String firstName;
    private String lastName;
    private String address;
 private String city;
 private String state;
 private String zip;
    private String phone;
    private String affil;

    public VoterBean(){

    }

    public String getFirstName(){
        return firstName;
    }

    public String getLastName(){
        return lastName;
    }

    public String getAddress(){
        return address;
    }

 public String getCity(){
        return city;
    }

 public String getState(){
        return state;
    }

 public String getZip(){
        return zip;
    }


    public String getPhone(){
        return phone;
    }

    public String getAffil(){
        return affil;
    }

    public void setFirstName(String firstName){
        this.firstName = firstName;
    }

    public void setLastName(String lastName){
        this.lastName = lastName;
    }

    public void setAddress(String address){
        this.address = address;
    }


  public void setCity(String city){
        this.city = city;
    }

  public void setState(String state){
        this.state = state;
    }

  public void setZip(String zip){
        this.zip = zip;
    }   

    public void setPhone(String phone){
        this.phone = phone;
    }

    public void setAffil(String affil){
        this.affil = affil;
    }


}

3. 向用户提供他/她填写的值的摘要。询问用户当前的值是否正常。如果用户单击“否”,则用户将返回到注册表单以便能够更改他/她的值。

现在的问题是当他们点击“是”时。

我有两个问题:

问题 #1:

我想创建一个 Bean 文件,在用户单击“是”后,表单信息将保存为列表。因此,如果多人完成注册过程,则应该有多个包含他们信息的列表。

我认为我会获取当前存储在上述 Java-EE bean 文件中的信息,并将其传输到另一个 Java EE 文件以创建列表。问题是我将如何列出所有这些信息并保存它?

问题 #2

用户单击“是”后,他/她将被带到一个页面,该页面应显示 JSF XHTML 数据表中的所有信息。

从我读到的关于 JSF 文件在 JSF XHTML 中实例化数据表的内容是这样的

<h:dataTable value="#{order.orderList}" var="o"
styleClass="order-table"
headerClass="order-table-header"
rowClasses="order-table-odd-row,order-table-even-row">

</h:dataTable>

假设我有一个名为“Order”的 Java-EE 文件和一个名为“orderList”的 List 变量,此数据表将获取该 List 变量中的值并在单独的行中打印每个不同的 List?

任何提示都会非常有帮助。

【问题讨论】:

    标签: java forms jsf jakarta-ee xhtml


    【解决方案1】:

    为此,我建议使用另一种方法来存储每个人的注册信息,通过一个名为 Person.java 的独立 bean,您可以在托管 bean 中实例化。新 bean 将包含您放入托管 bean 的注册信息。这样,除了显示目的之外,您不会使用列表:

    public class Person implements Serializable {
    
        private String firstName;
        private String lastName;
        private String address;
        private String city;
        private String state;
        private String zip;
        private String phone;
        private String affil;
    
        public Person(){ }
    
        // getters/setters
    
    }
    

    现在,一个托管 bean 就足以完成所有工作,它最终应该看起来像这样:

    import java.io.Serializable;
    import javax.enterprise.context.SessionScoped;
    import javax.inject.Named;
    
    @Named
    @SessionScoped
    public class VoterBean implements Serializable{
    
         private Person person = new Person();
         private List<Person> personsList = new ArrayList<Person>();
    
         public VoterBean(){
         }
    
         public List<Person> getPersonsList() {
              return personsList;
         }
    
         public String saveRegistration(){
             personsList.add(person);
             return "registrationsList";  // navigation to the registration list page after each complete registration process (click save button)
         }
    
    }
    

    在显示页面中,调用列表方式:

    <h:dataTable value="#{voterBean.personsList}" var="p" ... >
        ...
    </h:dataTable>
    

    【讨论】:

      猜你喜欢
      • 2014-07-29
      • 2021-10-07
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-21
      • 2015-08-14
      相关资源
      最近更新 更多