JSF 2.0将动态表单保存到数据库[重复]
Posted
技术标签:
【中文标题】JSF 2.0将动态表单保存到数据库[重复]【英文标题】:JSF 2.0 Saving dynamic form to a database [duplicate] 【发布时间】:2011-04-11 19:58:06 【问题描述】:我正在使用 JSF 2.0 和 Hibernate 编写一个用作管理面板的应用程序。我有一个带有 JSF 表单的 JSP 页面,其中的元素是使用 javascript 动态添加的(具体来说是 jQuery)。所以我不能对我必须处理多少数据做出任何假设。我有一个托管 bean,但我不知道如何为要保存在数据库中的动态字段放置 getter 和 setter。该解决方案似乎使用列表而不是单个元素,但是如何使用 JSF 元素的值标记?会不会是这样的:
<h:form>
<h:inputText id="i1" value="#UserBean.list" />
<h:inputText id="i2" value="#UserBean.list" />
<h:commandbutton id="submit" value="Submit" action="#UserBean.submit"/>
</h:form>
还有托管 bean:
@ManagedBean(name="UserBean")
@RequestScoped
public class UserBean
public UserBean()
List<String> list = null;
public List getList()
return list;
public List setList(List<String> newlist)
list = newList;
但是,上面的代码似乎不正确,当然也不起作用。我需要将 inputtext 的两个或多个值绑定到同一个列表。有没有人有任何建议如何解决它?提前致谢。 问候, 粗鲁。
【问题讨论】:
【参考方案1】:您不能直接使用 jQuery 动态添加 JSF 组件。 jQuery 所能做的就是在客户端遍历和操作“普通的”html DOM 树。它完全没有 JSF 组件树的概念,因为它是在服务器端生成和维护的。反过来,JSF 对由“普通”jQuery/JavaScript 完成的 HTML DOM 树中的状态更改一无所知,因为它不会通知服务器端的 JSF 更改。 JSF 依赖 JSF 组件树来处理表单提交,而不是 HTML DOM 树。
您想使用 JSF 动态更改 JSF 组件树。由于这将是一个很长的故事要详细解释,这里有一些链接指向我之前回答的类似问题,以帮助您入门:
How to add JSF components dynamically - 这应该正是您所需要的。 How to create dynamic JSF form - 以“另一种方式”来做,以防万一您感兴趣。【讨论】:
【参考方案2】:您可以使用 primefaces 扩展 dynaform。您可以在其中创建动态表单。 看这个链接
http://fractalsoft.net/primeext-showcase-mojarra/views/dynaForm.jsf
【讨论】:
以上是关于JSF 2.0将动态表单保存到数据库[重复]的主要内容,如果未能解决你的问题,请参考以下文章