我有一个带有学生列表的手风琴小组,我设置了dynamic =“true”,在手风琴小组的选项卡中,我有一个命令按钮,它调用辅助bean中的方法。 这里第一个标签的内容是空的,休息一切都很好。为了解决这个问题,我已经设置了dynamic =“false”,现在tab的内容出现了,但是命令按钮点击不会在第一次点击时调用支持bean的方法。我不确定发生了什么..我使用素面3.4和jsf2
<p:accordionPanel value="#{testBean.students}" var="stud" dynamic="true" activeIndex="#{systemManagedBean.formBean.id}">
<p:tab title="#{stud.name}" id="studId">
<p:commandButton process="@this" value="edit" icon="ui-icon-pencil" styleClass="btn-primary" style="margin-left:734px;" action="#{testBean.edit}">
<f:setPropertyActionListener target="#{testBean.stydent}" value="#{stud}"></f:setPropertyActionListener>
</p:commandButton>
我试过过程= @表格没有做任何改动..
答案 0 :(得分:0)
以下代码正在运行:
xhtml:
<h:form>
<p:accordionPanel value="#{so15320248.students}" var="student">
<p:tab title="#{student.name}">
<p:commandButton icon="ui-icon-pencil" value="Edit" actionListener="#{so15320248.edit(student)}"/>
</p:tab>
</p:accordionPanel>
</h:form>
托管bean:
@ManagedBean(name = "so15320248")
@ViewScoped
public class SO15320248 implements Serializable {
private static final long serialVersionUID = -2285963068688871710L;
private List<Student> students;
@PostConstruct
public void init() {
students = new ArrayList<Student>();
students.add(new Student("Student 1"));
students.add(new Student("Student 2"));
}
public void edit(Student student) {
System.out.println("===========================");
System.out.println(student.getName());
System.out.println("===========================");
}
public List<Student> getStudents() {
return students;
}
public void setStudents(List<Student> students) {
this.students = students;
}
}