Java 从动态创建的inputText获取值

Java 从动态创建的inputText获取值,java,jsf,primefaces,Java,Jsf,Primefaces,以下是我的abc.xhtml页面中的代码片段: <p:panelGrid id="pnlGrd_numOfLbl" style="align:center; width:100%;" cellpadding="5"> <c:forEach var="i" begin="1" end="${specificationMB.numOfLbl}" > <p:row> <p:column width="50%"> <p:o

以下是我的abc.xhtml页面中的代码片段:

<p:panelGrid id="pnlGrd_numOfLbl"
  style="align:center; width:100%;" cellpadding="5">
<c:forEach var="i" begin="1" end="${specificationMB.numOfLbl}" >
<p:row>
    <p:column width="50%">
        <p:outputLabel value="Label ${i}" />
    </p:column>
    <p:column width="50%">
        <p:inputText id="inputTxt_${i}" style="width:150px;" />
    </p:column>
</p:row>
</c:forEach>
</panelGrid>

这是我的panelGrid,我正在动态生成inputText 不可分割的。生成后说2将生成用户将添加一些 文本到每个输入文本,所以我的问题是,我如何才能获得动态的值 生成的输入框


谢谢。

以便获取动态生成的InputExt的值。你可以这样做

<input type="text" id="inputTxt_${i}" name="inputTxt_${i}" style="width:150px;" />

以获取动态生成的InputExt的值。你可以这样做

<input type="text" id="inputTxt_${i}" name="inputTxt_${i}" style="width:150px;" />

您可以将该值绑定到bean value对象中:

<input type="text" id="inputTxt_${i}" value="${specificationMB.getValue(i).value}"  />

您可以将值绑定到bean-value对象中:

<input type="text" id="inputTxt_${i}" value="${specificationMB.getValue(i).value}"  />

这可以通过JSF和primefaces的基础知识轻松完成。以下是完整的工作示例:

XHTML文件(我使用的是p:panel和ui:repeater)

输出


这可以通过JSF和primefaces的基础知识轻松完成。以下是完整的工作示例:

XHTML文件(我使用的是p:panel和ui:repeater)

输出


您好,卡迪尔,谢谢您的rply。您建议我使用primefaces inputText组件,但我想使用primefaces inputText组件。您建议我使用primefaces inputText组件,但我想使用primefaces inputText组件。我建议使用CDI bean而不是JSF托管bean。CDI更加灵活,并且有更多的特性。这是基于用户的问题回答的。我建议使用CDIBeans而不是JSF管理的bean。CDI更加灵活,具有更多的功能。这是根据用户的问题回答的
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;

@ManagedBean(name = "tBean")
@ViewScoped
public class TestBean {

    private List<LabelClass> lblClassess;

    public TestBean() {
        lblClassess = new ArrayList<LabelClass>();
        lblClassess.add(new LabelClass("First Label", ""));
        lblClassess.add(new LabelClass("Second Label", ""));
        lblClassess.add(new LabelClass("Third Label", ""));

    }

    public void submit(ActionEvent e) {
        for (LabelClass lbl : lblClassess) {
            System.out.println(lbl.getValue());
        }
    }

    public List<LabelClass> getLblClassess() {
        return lblClassess;
    }

    public void setLblClassess(List<LabelClass> lblClassess) {
        this.lblClassess = lblClassess;
    }

}
public class LabelClass {
    private String lbl;
    private String value;

    public LabelClass(String lbl, String value) {
        super();
        this.lbl = lbl;
        this.value = value;
    }

    public String getLbl() {
        return lbl;
    }

    public void setLbl(String lbl) {
        this.lbl = lbl;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

}