如何动态构建back bean编辑表单
我需要构建一个动态放置 inputText 字段的表单,我使用以下代码:
<h:form>
<c:forEach items="#{userBean.getFieldList()}" var="field">
<h:inputText value="#{userBean.getFieldValue(field.name)}" />
</c:forEach>
<h:commandButton value="Login" action="#{userBean.loginAction}" />
</h:form>
var 字段是元数据,不拥有字段值,而只拥有它们的属性。所以我用来
#{userBean.getFieldValue(field.name)}
获取bean字段值。 如果上面的代码仅用于查看页面,则效果很好。 但不在表单提交上,因为无法通过字段名称设置Fieldvalue。 有没有办法克服这个问题?有没有一种通用的方法来动态构建 back bean 编辑表单?
I need to build a form dynamically putting inputText field, I'm using this code:
<h:form>
<c:forEach items="#{userBean.getFieldList()}" var="field">
<h:inputText value="#{userBean.getFieldValue(field.name)}" />
</c:forEach>
<h:commandButton value="Login" action="#{userBean.loginAction}" />
</h:form>
the var field is a metadata and not own the field value but only their attribute. So I use
#{userBean.getFieldValue(field.name)}
to get the bean field value.
The code above works well if it's used only to view the page.
but not on form submit because of it's not possible to setFieldvalue by field name.
Is there a way to override the problem? Is there a generale way to dynamically build a back bean edit form?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将其绑定到
Map
属性,并使用大括号表示法[]
作为动态地图键。例如
,
字段名称成为映射键,字段值成为映射值。
Bind it to a
Map<String, Object>
property and use the brace notation[]
for the dynamic map key.E.g.
with
The field name becomes the map key and the field value becomes the map value.