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>

我想放一个commandButton标记。当我点击按钮时,它应该会生成另一个具有相同列数和行数的面板网格(每次点击)。我应该添加什么来实现它?

您可以将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中显示的信息。

EDIT:支持bean代码。

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);
    }
}

要理解此代码,我建议您在此处和此处阅读有关dataTable的内容。

相关内容

  • 没有找到相关文章

最新更新