命令按钮适用于第二次单击和手风琴第一个选项卡内容为空

时间:2013-03-10 08:12:13

标签: jsf-2 primefaces

我有一个带有学生列表的手风琴小组,我设置了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> 

我试过过程= @表格没有做任何改动..

1 个答案:

答案 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;
    }
}