【发布时间】:2013-02-03 01:31:07
【问题描述】:
我正在尝试实现根据列表动态生成相应面板中的选项卡的功能。
列表是说一些对象,例如人
现在每个人对应的属性,我都显示在表格的每个选项卡中。 值已正确加载,但是当我编辑这些值时,我没有在支持 bean 上获得更新的值,我只获得旧值。
有人能解释一下为什么吗?
这里是代码。
人物对象
public class Person {
String name;
//getter setter
@Override
public String toString() {
return name;
}
}
支持 Bean
@ManagedBean(name = "editor")
public class EditorBean {
private List<Person> persons = new ArrayList<Person>();
@PostConstruct
void init() {
persons.add(new Person("dhruv"));
persons.add(new Person("tarun"));
}
public void testAction() {
System.out.println(persons);
}
// Getter Setter*****************//
public List<Person> getPersons() {
return persons;
}
public void setPersons(List<Person> persons) {
this.persons = persons;
}
}
XHTML 代码:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<h1>Hello World PrimeFaces</h1>
<h:form>
<p:accordionPanel value="#{editor.persons}" var="person" dynamic="true">
<p:tab title="#{person}">
<p:inputText value="#{person.name}"></p:inputText>
</p:tab>
</p:accordionPanel>
<p:commandButton action="#{editor.testAction()}" value="testAction"></p:commandButton>
</h:form>
</h:body>
</html>
当我使用 dynamic="false" 运行相同的操作时。这工作正常。但在我的真实场景中,我有很多数据无法一次性绘制,这就是我想使用 dynamic = true 的原因。
如果不是通过 dynamic = true ,有人可以解释如何实现这一点吗??
【问题讨论】:
-
editor的范围是什么? -
我已经尝试了范围视图和会话...我在这两个范围中得到了相同的结果
标签: ajax jsf-2 primefaces accordion