我的actionListener不起作用

时间:2016-09-02 01:44:45

标签: jsf primefaces

我有一个对话框,用于在我的arraylist和数据库中添加一个对象,但是我的actionListener只是不调用我的函数!我尝试放置一些打印件,并且在我的功能中没有人被调用,但是看起来很好。任何人都可以找到问题吗?

我的对话框:

        <p:dialog header="Novo Aluno" widgetVar="novoDialog" modal="true"
        resizable="false">
        <h:form>
            <p:outputPanel>
                <p:panelGrid columns="2">
                    <h:outputText value="Nome: " />
                    <p:inputText value="#{alunosView.alunoNovo.nome}" />
                </p:panelGrid>
                <p:panelGrid columns="1">
                    <p:selectOneMenu value="#{alunosView.alunoNovo.turma}">
                        <f:selectItems value="#{alunosView.turmas}" var="turma"
                            itemLabel="#{turma.curso} - #{turma.ano}º ano" />
                    </p:selectOneMenu>
                </p:panelGrid>
                <p:panelGrid columns="2">
                    <p:commandButton value="Adicionar" update=":form:alunos"
                        actionListener="#{alunosView.adicionarAluno}"
                        oncomplete="PF('novoDialog').hide();" />
                    <p:commandButton value="Cancelar"
                        oncomplete="PF('novoDialog').hide();" />
                </p:panelGrid>
            </p:outputPanel>
        </h:form>
    </p:dialog>

我的豆子:

@ManagedBean
@ViewScoped
public class AlunosView {
ArrayList<Aluno> alunos;
ArrayList<Turma> turmas;
Aluno alunoSelecionado;
Aluno alunoNovo;
ClassDAO<Aluno> alunoDao;
ClassDAO<Turma> turmaDao;

@PostConstruct
public void init(){
    alunoDao = new ClassDAO<>(Aluno.class);
    turmaDao = new ClassDAO<>(Turma.class);
    alunos = alunoDao.getAll();
    turmas = turmaDao.getAll();
    alunoSelecionado = new Aluno();
    alunoNovo = new Aluno();
}

public void adicionarAluno(){
    System.out.println("asdhaisdisdhisdaisdahiasdhsad dkgsad ksa gdlasds");
    alunoDao.save(alunoNovo);
    alunos = alunoDao.getAll();
}

public void deletarAluno(){
    alunoDao.remove(alunoSelecionado.getId());
    alunos = alunoDao.getAll();
}

public void salvarAluno(){
    alunoDao.save(alunoSelecionado);
    alunos = alunoDao.getAll();
}

public ArrayList<Aluno> getAlunos() {
    return alunos;
}

public void setAlunos(ArrayList<Aluno> alunos) {
    this.alunos = alunos;
}

public ArrayList<Turma> getTurmas() {
    return turmas;
}

public void setTurmas(ArrayList<Turma> turmas) {
    this.turmas = turmas;
}

public Aluno getAlunoSelecionado() {
    return alunoSelecionado;
}

public void setAlunoSelecionado(Aluno alunoSelecionado) {
    this.alunoSelecionado = alunoSelecionado;
}

public Aluno getAlunoNovo() {
    return alunoNovo;
}

public void setAlunoNovo(Aluno alunoNovo) {
    this.alunoNovo = alunoNovo;
}

}

最奇怪的是,我有其他页面几乎等于这个页面和那个bean工作正常! post构造方法中的代码也可以正常工作。有人帮我吗?

0 个答案:

没有答案