adg*_*gfs 6 java datatable jsf
我在jsf中有一个dataTable,我如何从该表中获取所有值.
这是我的表:
<h:dataTable id="dt1" value="#{Metadata.placeholders}" var="item" binding="#{Metadata.dataTable}" bgcolor="#F1F1F1" border="10" cellpadding="5" cellspacing="3" first="0" rows="4" width="40%" frame="hsides" rules="all" summary="This is a JSF code to create dataTable." >
<f:facet name="header">
<h:outputText value="Select elements for available placeholder" />
</f:facet>
<h:column>
<f:facet name="header">
<h:outputText value="Placeholder" />
</f:facet>
<h:outputText value="#{item.id}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Element"/>
</f:facet>
<h:selectOneListbox id="elements" size="1" >
<f:selectItems value="#{item.elements}" />
</h:selectOneListbox>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Value"/>
</f:facet>
<h:inputText></h:inputText>
</h:column>
</h:dataTable><br>
Run Code Online (Sandbox Code Playgroud)
如您所见,第二列和第三列是列表框和输入文本字符,因此假设该表有5行,用户从列表框中选择一个值并在文本字段中输入文本,那么我怎么能得到它用户按"提交"按钮后的数据?
只需将下拉列值绑定到当前迭代项的属性即可.
<h:dataTable value="#{metadata.placeholders}" var="placeholder">
<h:column>
<h:selectOneMenu value="#{placeholder.element}">
<f:selectItems value="#{placeholder.elements}" />
</h:selectOneMenu>
</h:column>
</h:dataTable>
<h:commandButton value="Submit" action="#{metadata.submit}" />
Run Code Online (Sandbox Code Playgroud)
(注意我<h:selectOneListbox size="1">
用a 修复了无意义<h:selectOneMenu>
)
提交表单时,JSF只会element
在迭代Placeholder
对象的属性中设置值.如果您打算单独访问它,只需placeholders
在操作方法中循环.
public void submit() {
for (Placeholder placeholder : placeholders) {
System.out.println(placeholder.getElement()); // Look, JSF has already set it.
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4568 次 |
最近记录: |