java - JSF 将对象添加到 arrayList

标签 java jsf object arraylist

我一直在尝试使用 Java Server Faces 将 Student 对象添加到 arrayList,但我可以弄清楚如何做到这一点,这是我到目前为止所得到的。我需要使用什么方法,我把它放在哪里?

索引

<h:body>
    <h:form >
        <h:panelGrid columns="2" >
            <h:outputText value="Name"/>
            <p:inputText value="#{student.name}" required="true">
            <h:outputText value="Age"/>
            <p:inputText value="#{student.age}" required="true">
                <p:commandButton value="Add" action="#{student.showGo()}"><!--go to another JSF page-->
                   <!-- ActionListener needed-->
                </p:commandButton>  
        </h:panelGrid>  
    </h:form>
</h:body>

学生 bean

@Named(value = "student")
@RequestScoped
public class StudentBean {


private String name;
private int age;

public StudentBean(String name, int age) {
    this.name = name;
    this.age = age;
}


public StudentBean() {
}

public String showGo(){
    return "show";
}

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

}

列表bean

@Named(value = "list")
@RequestScoped
public class List {

private ArrayList<StudentBean> studentList = new ArrayList<>();
public List() {
}

 public void addStudent()
{
    StudentBean student = new StudentBean();
    studentList.add(student);
}

最佳答案

我不确定我是否理解你的意思。但是,如果您的目的只是将 nameage 保存在对象中并将其添加到列表中,则以下内容应该可以达到目的:

  1. SessionScope 中的托管 bean,以便您可以在下一页中访问它(`show.xhtml??):

    @Named(value = "student")
    @SessionScoped
    public class StudentBean {
    
     private ArrayList<Student> studentList = new ArrayList<>();
    
         private String name;
         private int age;
    
         public StudentBean(String name, int age) {
            this.name = name;
            this.age = age;
         }
    
    
          public StudentBean() {
          }
    
          public String showGo(){
             Stundent student = new Student(name, age);
             studentList.add(student);
    
             return "show";
         }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public List<Student> getStundentList() {
            return studentList;
        }
    }
    
  2. 仅定义一个简单的 Sundent 类作为 JavaBean:

    public class Stundent {
        private String name;
        private int age;
    
        public Stundent() { }
    
        public Stundent(String name, int age) {
             this.name = name;
             this.age = age;
        }
    
        // getters and setters
    }
    

    如果您还有疑问,请给我留言。

关于java - JSF 将对象添加到 arrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37500886/

相关文章:

java - Pax Exam j2ee 集成测试,如何使用自定义 war probe 编写多个测试类?

java - Swagger 2 & spring MVC - 忽略 war 上下文路径

jsf - 为实体创建主从页面、如何链接它们以及选择哪个 bean 范围

object - Ionic 3 使用 navparams 将对象传递到 3 个页面

java - Jersey WADL 生成器支持自定义注释

java - 将 ACE 与 WT 结合使用

jsf - 单击命令按钮时如何在 PrimeFaces 灯箱中打开页面?

spring - 来自@RequestScoped bean 的数据在不同的浏览器中共享

javascript - 使用 JavaScript 数组打印对象属性

Javascript如何重命名对象键保持值和位置