Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.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
Java jsf提交动态生成的多个表<;h:输入文本>;_Java_Jsf 2 - Fatal编程技术网

Java jsf提交动态生成的多个表<;h:输入文本>;

Java jsf提交动态生成的多个表<;h:输入文本>;,java,jsf-2,Java,Jsf 2,我有一个动态生成的表,其中包含动态生成的字段 我的问题是如何将所有发布到支持bean 我的桌子是这样的: <table class="table table-bordered table-hover"> <ui:repeat value="#{mainWorkerMB.showAvailableEventDetailTypes()}" var="eventDetail"> <tr> <td> <h:outputText value="#{ev

我有一个动态生成的表,其中包含动态生成的
字段

我的问题是如何将所有
发布到支持bean

我的桌子是这样的:

<table class="table table-bordered table-hover">
<ui:repeat value="#{mainWorkerMB.showAvailableEventDetailTypes()}" var="eventDetail">
<tr>
<td>
<h:outputText value="#{eventDetail.edtyName}"></h:outputText>
</td>
<td>
h:inputText styleClass="form-control" value="#{mainWorkerMB.edtyId}" />
</td>
</tr>
</ui:repeat>
</table>    

h:inputText styleClass=“表单控制”值=“#{mainWorkerMB.edtyId}”/>
我知道默认情况下,我必须在我的支持bean中创建字段,使用getter和setter,但现在我不知道我将有多少字段

很抱歉,我还没开始解决这个问题


你知道吗?请帮助我。

是的,您可以,您需要迭代集合以生成每个对象的表和输入字段,这是一个示例:

在这种情况下,集合中的对象是Person的实例:

public class Person {

    private String name;
    private int age;

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    @Override
    public String toString() {
        return "Name: " + name + ", age: " + age;
    }
}
在托管bean中(在本例中,我使用的是CDI),您需要填充集合:

@Named
@ViewScoped
public class SampleBean implements Serializable {

    private static final long serialVersionUID = 1L;

    private List<Person> dataSample;

    @PostConstruct
    private void init() {
        dataSample = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            Person person = new Person();
            dataSample.add(person);
        }
    }

    public void process() {
        dataSample.forEach(System.out::println);
    }

    public List<Person> getDataSample() {
        return dataSample;
    }
}

是的,您可以,您需要迭代集合以生成每个对象的表和输入字段,例如:

在这种情况下,集合中的对象是Person的实例:

public class Person {

    private String name;
    private int age;

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    @Override
    public String toString() {
        return "Name: " + name + ", age: " + age;
    }
}
在托管bean中(在本例中,我使用的是CDI),您需要填充集合:

@Named
@ViewScoped
public class SampleBean implements Serializable {

    private static final long serialVersionUID = 1L;

    private List<Person> dataSample;

    @PostConstruct
    private void init() {
        dataSample = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            Person person = new Person();
            dataSample.add(person);
        }
    }

    public void process() {
        dataSample.forEach(System.out::println);
    }

    public List<Person> getDataSample() {
        return dataSample;
    }
}

非常感谢,我的问题有点误导,但你的回答帮助我解决了问题。非常感谢,我的问题有点误导,但你的回答帮助我解决了问题。