如何动态添加输入字段[重复]

Posted

技术标签:

【中文标题】如何动态添加输入字段[重复]【英文标题】:How to dynamically add an input field [duplicate] 【发布时间】:2013-05-31 17:23:09 【问题描述】:

我想添加动态输入字段。喜欢

PF有没有好的组件说明如何添加这样的组件?

请给我一个关于你将如何开发它的提示,因为我目前不知道。

非常感谢您的回答。

我的技术栈:

休眠:4.0.1.Final 春季:3.1.1.RELEASE Primefaces:3.5 jsf 版本:2.2.0-m08 PrimefacesMobile 版本:0.9.3 Apache Tomcat/7.0.12

【问题讨论】:

再一次,您尝试过什么?显示代码而不仅仅是图像。此外,您的技术堆栈不会帮助我们为您提供正确的方向。 @maximus 这是纯 JSF 2.0 ***.com/a/16762538/354831 中的一个示例,可以根据您的需要进行修改。 @AlexandreLavoie 非常感谢您的出色回答!!! 【参考方案1】:

也许下面的代码可以帮助你,恐怕没有一个组件可以解决这个问题(至少据我所知):

HTML

<h:form>
    <ui:repeat value=#bean.values 
               var="value">
        <h:inputText value="#value" />
        <br />
    </ui:repeat>

    <h:commandButton value="Extend">
        <f:ajax listener="#bean.extend"
                process="@form" 
                render="@form" />
    </h:commandButton>
    <h:commandButton action="#bean.submit" 
                     value="Save" />
</h:form>

@ManagedBean
@ViewScoped
public class Bean 
    private List<String> values;

    @PostConstruct
    public void init() 
        values = new ArrayList();
        values.add("");
    

    public void submit() 
        // save values in database
    

    public void extend() 
        values.add("");
    

    public void setValues(List<String> values) 
        this.values = values;
    

    public List<String> getValues() 
        return values;
    

【讨论】:

请参考JSTL in JSF2 Facelets… makes sense?以了解在这种情况下使用&lt;c:forEach&gt;会出现问题。相反,将其替换为 &lt;ui:repeat&gt; 以避免出现 ajax 渲染/更新问题。否则,请在发布之前测试您的答案。 @LuiggiMendoza 好电话,从由于阶段需要&lt;c:forEach&gt; 的情况开始。在这种情况下,&lt;ui:repeat&gt; 可以正常工作!关于测试,附近没有IDE。 我试过这个,但是当你有一个 List 时它不起作用。您无法更改列表中的字符串,因为它们是不可变的,因此新值不会到达支持 bean。

以上是关于如何动态添加输入字段[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Json 对象填充动态添加的输入字段

如何通过闪亮的按钮动态添加/删除输入字段

使用 VueJs 添加动态输入字段

如何为自定义单元格中的动态附加输入字段添加约束

为啥音译不适用于动态添加输入字段?

在 JSF 中动态添加文本字段 [重复]