2013-06-05 66 views
1

我想添加动态输入字段。像如何动态添加输入字段

enter image description here

是否有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
+2

再次,你有什么努力去实现这个目标?显示代码而不是仅显示图像。此外,您的技术堆栈不会帮助我们为您提供正确的方向。 –

+1

@maximus这是一个简单的JSF 2.0示例http://stackoverflow.com/a/16762538/354831它可以根据您的需要进行修改。 –

+0

@AlexandreLavoie thx很多为您的优秀答案! – maximus

回答

6

或许下面这段代码可以帮助你,我怕有没有这个组件(至少据我所知):

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> 

BEAN

@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; 
    } 
} 
+1

请参阅[JSF2 Facelets中的JSTL ...有意义?](http://stackoverflow.com/q/3342984/1065197),了解在这种情况下使用''将是一个问题。相反,将其替换为''以避免ajax呈现/更新问题。否则,请在发布之前测试您的答案。 –

+0

@LuiggiMendoza良好的通话,从一个由于阶段需要''的情况开始。在这种情况下,''将会工作得很好!关于测试,附近没有IDE。 – Aquillo

+0

我试过这个,但是当你有一个列表时它不起作用。你不能更改列表中的字符串,因为它们是不可变的,所以新的值不会到达支持bean。 – JSeven