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