java - JSF 2.0 将动态表单保存到数据库

标签 java jquery jsf jsf-2

<分区>

我正在使用 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;
}

}

但是,上面的代码看起来不正确,肯定是行不通的。我需要将输入文本的两个或多个值绑定(bind)到同一个列表。有没有人对如何解决有任何建议?提前致谢。 问候, 萨斯。

最佳答案

您不能使用 jQuery 直接动态添加 JSF 组件。所有 jQuery 都可以在客户端遍历和操作“普通的”HTML DOM 树。它完全没有 JSF 组件树的概念,因为它是在服务器端生成和维护的。反过来,JSF 对由“普通”jQuery/JavaScript 完成的 HTML DOM 树中的状态更改一无所知,因为它不会在服务器端将更改通知 JSF。 JSF 依靠 JSF 组件树来处理表单提交,而不是 HTML DOM 树。

您想使用 JSF 动态更改 JSF 组件树。由于要详细解释这将是一个冗长的故事,这里有一些指向我之前回答过的类似问题的链接,以帮助您入门:

关于java - JSF 2.0 将动态表单保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3703427/

相关文章:

java - 使用jsoup从两个标签之间提取不明的html内容?正则表达式?

java - 使用非西方字符对字符串进行排序

javascript - Jquery:在html页面中更改类时的平滑过渡效果

javascript - Snap.svg 加载的 SVG 图形的主要问题 - 在特定元素上选择和动画路径变换不起作用

java - InplaceSelect 适用于对象而不是字符串

java - 能够编码文件,但前提是从测试中调用该方法

jsf - 向托管 bean 发送 UTF-8 字符串不起作用

java - 输入流未被读取

java - Swing 标签与文本字段未对齐

javascript - 动态 jQuery 多选插件