Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自JavaEEbean文件的列表数据没有显示在JSFXHTML数据表元素中_Html_Jsf_Jakarta Ee_Xhtml - Fatal编程技术网

来自JavaEEbean文件的列表数据没有显示在JSFXHTML数据表元素中

来自JavaEEbean文件的列表数据没有显示在JSFXHTML数据表元素中,html,jsf,jakarta-ee,xhtml,Html,Jsf,Jakarta Ee,Xhtml,以下是当前运行的应用程序数量的步骤: 1.用户使用表单注册为投票人 2.当用户提交表单时,数据将保存到bean中: import java.io.Serializable; import javax.enterprise.context.SessionScoped; import javax.inject.Named; @Named @SessionScoped public class VoterBean implements Serializable{ private String

以下是当前运行的应用程序数量的步骤:

1.用户使用表单注册为投票人

2.当用户提交表单时,数据将保存到bean中:

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.此外,提交表单时,上述bean中的信息将保存到列表变量中的另一个bean中:

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

@Named
@SessionScoped
public class VoterData implements Serializable{

 private VoterBean voter = new VoterBean();

     private List<VoterBean> voterList = new ArrayList<VoterBean>();

     public VoterData(){
     }

     public List<VoterBean> getVoterList() {
          return voterList;
     }

     public String saveRegistration(){
         voterList.add(voter);
         return "VoterList";  
     }


}
通过表单页面上的提交按钮调用上述类的meethod:

<h:commandButton id = "Yes" value = "Yes" action = "#{voterData.saveRegistration}"/><br/>
4.第一个bean中的信息保存到第二个bean中的列表变量中后,用户将被带到一个JSF XHTML页面,该页面显示在DataTable中注册的所有当前用户:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html  
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" lang="en"
  xmlns="http://www.w3.org/1999/xhtml" 
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:ui="http://java.sun.com/jsf/facelets">

    <h:head>
        <title>Voter Summary</title>
    </h:head>
    <h:body>


      <h:form id = "form" >

      <h:outputLabel value = "First Name:"/> 
     <h:outputLabel value = "#{voterBean.firstName}"    /> 
<br/>

 <h:outputLabel value = "Last Name:"/> 
       <h:outputLabel value = "#{voterBean.lastName}"/>
<br/>


 <h:outputLabel value = "Address:"/> 
      <h:outputLabel value = "#{voterBean.address}"/>

<br/>
 <h:outputLabel value = "City:"/> 
     <h:outputLabel value = "#{voterBean.city}"/>
<br/>


 <h:outputLabel value = "State"/> 
      <h:outputLabel value = "#{voterBean.state}"/>
<br/>


 <h:outputLabel value = "Zip:"/> 
      <h:outputLabel value = "#{voterBean.zip}"/>
<br/>


 <h:outputLabel value = "Phone:"/> 
      <h:outputLabel value = "#{voterBean.phone}"/>
<br/>

 <h:outputLabel value = "Affiliation:"/> 
      <h:outputLabel value = "#{voterBean.affil}"/>
<br/>

Is the following information correct?
<br/>
       <h:commandButton id = "Yes" value = "Yes" action = "#{voterData.saveRegistration}"/><br/>
      <h:commandButton id = "No" value = "No" action = "Register"/><br/>
      </h:form>

    </h:body>
</html>
然而,问题来了:

即使在我注册了一名投票人之后,列表中的数据也不会显示在HTML页面上。它只显示列名,不显示数据


我不确定我做错了什么。。我添加的信息正确吗?我读的信息有误吗?

我想你应该这样做:

<h:outputLabel value = "Address:"/> 
      <h:outputLabel value = "#{voterData.voter.address}"/>

<br/>
 <h:outputLabel value = "City:"/> 
     <h:outputLabel value = "#{voterData.voter.city}"/>
<br/>


 <h:outputLabel value = "State"/> 
      <h:outputLabel value = "#{voterData.voter.state}"/>
<br/>


 <h:outputLabel value = "Zip:"/> 
      <h:outputLabel value = "#{voterData.voter.zip}"/>
<br/>


 <h:outputLabel value = "Phone:"/> 
      <h:outputLabel value = "#{voterData.voter.phone}"/>
<br/>

 <h:outputLabel value = "Affiliation:"/> 
      <h:outputLabel value = "#{voterData.voter.affil}"/>
您正在尝试对原始对象进行更改。
您想访问voterData属性voter,它是voterBean的类型。

请注意,voterBean只是带有字段+getter/setter的POJO简单java类,不应将其视为注释为托管bean。删除VoterBean类上方的两个批注。是否尝试使用使用“private VoterBean voter=new VoterBean;”创建的VoterBean?这不是一个托管bean,它将不能在您的页面上使用?