2011-06-02 55 views
1

我的代码:JSF:生成另一个panelGrid的

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> 
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> 

<f:view> 
<html> 
    <body> 
    <h:form> 
<h:panelGrid columns="3" border="1" rules="all" title="This is panelGroup demo"> 
    <f:facet name="header"> 
    <h:outputText value="Submit Detail"/> 
    </f:facet> 
    <h:inputText/> 
    <h:inputText/> 
    <h:inputText/> 
    <h:inputText/> 
    <h:inputText/> 
    <h:inputText/> 
    <h:inputText/> 
    <h:inputText/> 
    <f:facet name="footer"> 
    <h:panelGroup> 
    <h:outputText value="Leave Comment Here :" /> 
    <h:inputText/> 
    <h:outputText value="Submit" /> 
    <h:commandButton value="SUBMIT" /> 
    </h:panelGroup> 
    </f:facet> 
</h:panelGrid> 
    </h:form> 
    </body> 
</html> 
</f:view> 

我想提出一个命令标签。当我点击按钮时,它应该生成另一个具有相同列数和行数的panelgrid(每次点击)。 我应该添加什么来实现它?

+0

您想要动态生成还是静态生成? – kinkajou 2011-06-03 03:03:47

回答

1

你可以把panelGrid放在dataTable的内部,然后将它连接到一个有列表的bean。然后,当您按commandButton时,您只需将一个元素添加到列表中,数据就会呈现另一行。下面是一些示例代码:

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> 
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> 

<f:view> 
<html> 
    <body> 
    <h:form> 
    <h:dataTable value="#{myBean.myList}" var="myListElement" > 
    <h:column> 
     <!-- put your panelGrid here!! --> 
    </h:column> 
    </h:dataTable> 
    <h:commandButton value="Add panelGrid" action="#{myBean.addToMyList}" /> 
    </h:form> 
    </body> 
</html> 
</f:view> 

列表中的每个元件然后可用于保存要被显示在个人panelGrid S信息。

编辑:支持豆代码。

public class MyBean { 
    private List<Object> myList; 

    public MyBean() { 
     myList = new ArrayList<Object>(); 
    } 

    public void addToMyList() { 
     myList.add(new Object()); 
    } 

    public List<Object> getMyList() { 
     return (myList); 
    } 
} 

要理解这段代码,我建议你阅读dataTableherehere

+0

或者您可以用类似的方式使用''...... – 2011-06-03 03:29:55

+0

不!不要混用ui:用h:inputText重复! (或任何其他可编辑的值持有人!) - 它已经坏了。 – fdreger 2011-06-03 21:19:44

+0

你好 你能告诉我什么,我必须把支持豆 我不知道 帮助我更多请给我一个例子,如果有可能 备注:我想在我的支持动态生成新面板豆。谢谢你的帮助 – hibara 2011-06-04 13:27:07