<h:form id="my-form">
<p:dataTable value="#{testBean.list}" var="s" id="datatable">
<p:column>
<h:inputText value="#{s}"/>
</p:column>
<f:facet name="footer">
<p:commandButton value="Add row" action="#{testBean.addRow()}" process="@form" update="@form" immediate="true" />
<p:commandButton value="Do stuff" action="#{testBean.doSomeLogic()}" process="@form" update="@form"/>
</f:facet>
</p:dataTable>
</h:form>
托管bean:
@ManagedBean
@ViewScoped
public class TestBean implements Serializable {
private List<String> list;
public TestBean() {
}
@PostConstruct
public void init() {
list = new ArrayList<String>();
list.add("one");
list.add("two");
}
public void addRow(){
list.add(new String());
}
public void doSomeLogic(){
for (String string : list) {
System.out.println(string);
}
}
// getters and setters
}
实际发生的情况:
我还可以做些什么来提交新值呢?我才刚刚开始JSF,我不确定我已经100%地得到它了。
编辑:问题解决多亏了Jitesh,这里可以找到一个工作示例:JSF2,我可以动态添加JSF组件吗?
唯一的问题是您在InputText中使用了不可变对象。要理解这一点,请看Baluc的回答
根据它“作为一个不可变的对象,字符串没有setter方法。将永远无法设置输入的值。”
尝试从commandButton中删除immediate属性,您会发现在插入每一行时,数据将被清除。
问题内容: 我只需要更新,而不需要更新整个表单。我尝试使用,,,但没有人正在为我想。使用时,它正在检查不需要执行的验证。 我该如何实现? 问题答案: 首先,仅因为它根本不支持该属性,它的确不会与一起使用。也许您真的打算使用? 修复a身份后, 阅读完该答案后,您应该已经发现数据表在该特定的代码段中由标识。因此,应该采取以下所有措施: 请注意,直到PrimeFaces 3.3为止,在某些复杂的UI组合
问题内容: 我正在尝试将tinyMCE编辑器添加到我的页面,将其删除,然后再次添加,但出现错误。 当我运行A部分,然后运行B部分,而不是运行A部分时,出现错误: 甲部 B部分 编辑: 上面是创建JavaScript的后端分支,下面是完整的JavaScript函数。第一次通过它打开对话框并工作,其内容在编辑器中,没有错误。当我单击关闭按钮时,对话框关闭。当我再次运行该函数时,将显示对话框,但编辑器为
问题内容: 我在理解CSS属性的行为时遇到了麻烦。根据规范和此处 顾名思义,和伪元素指定元素的文档树内容之前和之后的内容位置。 这似乎并未限制哪些元素可以具有(或)属性。但是,它似乎仅适用于特定元素 … 有效,无效,无效。我可以测试更多,但重点是。请注意,这在各个浏览器中似乎非常一致。 是什么决定对象是否可以接受和属性? 问题答案: 和都是被替换的元素。 替换的元素是其外观和尺寸由外部资源定义的任
我有下面的代码从我的房间数据库的LiveData中获取信息- 出于某种原因,在观察者内部调用submitList不会将项添加到列表中。 我试图在观察者之前添加虚假的测试项目,它工作了,我在调用submitList方法之前记录了模型信息,它打印了有效信息。 我还试图用一个主分发器的协程来结束对submitList的调用,认为这与回调不在主线程中或类似的东西有关,但仍然没有结果。 我错过了什么?一切看
问题内容: 我们有一个简单的项目,我们从套接字读取数据,并希望用即将到来的数据填充表,但是我们找不到找到将行添加到尚未创建的对象的方法,只能在以下位置找到添加行的方法:表的创建时间。 是否可以向中动态添加行,或者有更好的替代对象来处理这种显示数据的方式? 编辑 :非常感谢您的回答。 他们三个看起来都很有前途,但是我只选择一个,我认为最好的就是纪尧姆的。 问题答案: 您应该创建一个自定义。A 实际上
我正在写申请表。它需要列出除了PI和表单提交者之外的研究团队成员。然而,一些研究将没有额外的团队成员,所以我希望该行保持隐藏,直到有人点击添加团队成员按钮。 什么在起作用: 1。我在最初加载页面时隐藏了元素。2.单击添加行可以添加正确的行。3.单击删除将删除一行。 目前存在的问题:1.如果有人添加团队成员,然后删除所有团队成员,单击添加团队成员将不会添加行。2.当元素在初始页面加载中隐藏时,第一次