2012-12-14 154 views
1

可能重複:
How to create dynamic JSF 1.2 form fields添加UI組件動態

我需要有一個功能,其中i可以添加一組形式的元素等(文本框,下拉菜單)每當時間我點擊'添加'按鈕。當我點擊組件旁邊的「刪除」按鈕時,它應該從頁面中刪除。 這是Java中需要的功能。 任何人都可以幫忙嗎?

回答

1

這是一個工作示例。您應該根據您的要求實施您自己的代碼。
textBox添加到您的頁面,然後使用可迭代組件如ui:repeat,a4j:repeatc:forEach來創建多個組件。

<h:form id="test"> 
    <ui:repeat value="#{myBean.myObjects}" var="obj"> 
    <h:inputText value="#{obj.text}" /> 
    <h:commandButton action="#{myBean.remove(obj)}" value="Remove"/><br/> 
    </ui:repeat> 
    <br/> 
    <h:commandButton action="#{myBean.add()}" value="Add"/> 
</h:form> 

在您的託管bean中getMyObjects()方法應返回添加項目的列表。

public class MyBean { 
    private List<MyObject> objs = new ArrayList<MyObject>(); 

    public List<MyObject> getMyObjects() { 
    return objs; 
    } 

    public void remove(MyObject t) { 
    objs.remove(t); 
    } 

    public void add() { 
    objs.add(new MyObject()); 
    } 

    public class MyObject { 
    private String text; 

    public String getText() { 
     return text; 
    } 

    public void setText(String text) { 
     this.text = text; 
    } 

    } 
} 
+0

非常感謝。 標籤是jsf標籤?我想使用核心標籤來實現,而不使用其他庫,如primefaces,richfaces等。 – Tjs

+0

這是一個「Facelets」標籤。我認爲這不是你的問題。閱讀更多在[這裏](http://docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/facelets/ui/repeat.html)和[here](http://www.jsftoolbox。 com/documentation/facelets/10-TagReference/facelets-ui-repeat.html) – prageeth

+0

@Prageeth如果OP正在處理一箇中等規模的項目並嘗試在中間添加Facelets,這可能是一個問題。 –