Não consigo chamar os metódos do bean

2 respostas
R

Viva

Eu estou vendo um pouco JSF 2.0, mas por alguma razão tou parado neste problema que não tou consigo resolver e estou sem ideias.

Por algum motivo o meu form não consegue chamar o método do bean. Tenho brackpoints no inicio desses métodos e sempre que entro em debug o código do bean correspondente aos submits do form não funciona, quer para o botão de cancel, como para o de update. Segue o código:

facelets composition:

<h:form id="contentEditorForm" >

        <h1><h:outputText value="#{contentItemBean.item.title}"/></h1>

        <h:messages/>

        <h:commandButton value="Cancel" immediate="true" action="#{contentItemBean.cancel}" />
        <h:commandButton value="Update" action="#{contentItemBean.update}" />

        <h3>Title</h3>
        <h:inputText id="inputTitle" value="#{contentItemBean.item.title}" />

        <h3>Introdution</h3>
        <textarea cols="80" id="editorIntroduction" name="editorIntroduction" rows="10">#{contentItemBean.item.introduction}</textarea>
        <h3>Content</h3>
        <textarea cols="80" id="editorContent" name="editorContent" rows="10">#{contentItemBean.item.content}</textarea>
    </h:form>

backing bean:

@ManagedBean
@RequestScoped
public class ContentItemBean {
...
    public String update()
    {
        try {
            // Set current system date
            item.setDateModified(Calendar.getInstance().getTime());

            ContentItemCommand c = new ContentItemCommand();
            c.setOperation(ContentItemCommand.OPERATION_UPDATE);
            c.setItem(item);

            c.execute();

            return "ok";
        }
        catch(Exception e)
        {
            return "exception";
        }
    }
    
    public String cancel()
    {
        return "ok";
    }
}

Para já o meu faces config está vazio, porque ainda não me quis preocupar com a navegação propriamente dita.

Uma coisa que entretanto achei estranha... é o código html que está a ser renderizado para os botões:

<form id="contentEditorForm" name="contentEditorForm" method="post" action="/plato/faces/pages/backoffice/content.item.xhtml" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="contentEditorForm" value="contentEditorForm" />
<h1>Tráfego aéreo continuará ?consideravelmente perturbado? amanhã </h1><input type="submit" name="contentEditorForm:j_idt22" value="Cancel" /><input type="submit" name="contentEditorForm:j_idt23" value="Update" />

Ou seja parece não estar a ser gerado código js para enviar o pedido para o servidor. Quando clico nos botões tenho simplesmente um reload da página.

Alguma ideia que possa ajudar?

Obrigado

2 Respostas

arthurminarini

tente trocar o seu h:form por um a4j:form e coloque um atributo ajaxsubmit=“true”

R

Eu não estou usando richfaces. Apenas o mojarra 2.0 com jquery ui, além que não tenho nenhum comportamento AJAX nessa página.

Criado 18 de agosto de 2010
Ultima resposta 20 de ago. de 2010
Respostas 2
Participantes 2