【问题标题】:dynamic inputtextfields动态输入文本字段
【发布时间】:2012-08-09 13:05:22
【问题描述】:

我正在尝试使用 primefaces 创建带有标签的动态输入文本字段。
就像我单击添加按钮一样,它应该继续添加标签和输入文本字段。
我可以使用什么组件?谢谢。

【问题讨论】:

    标签: java jsf primefaces


    【解决方案1】:

    您可以为此使用 <h:dataTable>@ViewScoped bean。

    例如

    <h:form>
        <h:dataTable id="inputs" value="#{bean.inputs}" var="input">
            <h:column>
                <p:outputLabel for="input" value="#{input.label}" />
            </h:column>
            <h:column>
                <p:inputText id="input" value="#{input.value}" />
            </h:column>
        </h:dataTable>
        <p:commandButton value="Add" action="#{bean.add}" update="inputs" />
    </h:form>
    

    @ManagedBean
    @ViewScoped
    public class Bean implements Serializable {
    
        private List<Input> inputs;
    
        @PostConstruct
        public void init() {
            inputs = new ArrayList<Input>();
        }
    
        public void add() {
            Input input = new Input();
            input.setLabel("Input " + (inputs.size() + 1));
            inputs.add(input);
        }
    
        public List<Input> getInputs() {
            return inputs;
        }
    
    }
    

    public class Input {
    
        private String label;
        private String value;
    
        public String getLabel() {
            return label;
        }
    
        public void setLabel(String label) {
            this.label = label;
        }
    
        public String getValue() {
            return value;
        }
    
        public void setValue(String value) {
            this.value = value;
        }
    
    }
    

    您当然也可以使用&lt;p:dataTable&gt;,但这只会增加一些花哨的外观,这对于这个特定的用例来说可能是不必要的。

    另见:

    【讨论】:

    • 我不知道我们可以在数据表中使用 inputtextfields。非常感谢。
    • 我也会尝试用collector,看看哪个更适合
    • @BalusC 我们如何为添加的项目添加删除功能?
    • @mabuzer:这显示在“另见”链接后面的示例中。
    猜你喜欢
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 2013-10-03
    • 1970-01-01
    • 2021-04-22
    • 2013-07-02
    相关资源
    最近更新 更多