Seam - update de valores em um form numa modal

1 resposta
natalisilverio

Olá pessoal

Sou iniciante em JSF e Seam e estou com dificuldades em entender os motivos e encontrar a solução para a exception que é lançada quanto clico no botão atualizar de uma modal.

Aparentemente meu @dataModelSelection está vazio após o click. Alguém pode me dar alguma dica do meu erro?

Muito obrigado!

Exception:

Exception during request processing: Caused by javax.servlet.ServletException with message: "javax.el.PropertyNotFoundException: /parametros.xhtml @103,100 value="#{parametros.configuracao2Record.parametro}": Target Unreachable, 'configuracao2Record' returned null on 'br.com.xxx.admin.core.components.action.ParametrosAction_$$_javassist_seam_3'"

@Name("parametros")
@Scope(ScopeType.CONVERSATION)
public class ParametrosAction extends SuperManagedBean {

    @DataModel
    private List<IConfiguracao2> configuracao2List;

    @DataModelSelection
    private IConfiguracao2 configuracao2Record;

    @Logger
    private Log log;

    @SuppressWarnings("unchecked")
    @Factory("configuracao2List")
  
    @Begin
    public String redirect() {

        return "parametros";
    }

    
    public void update() {

        try {
            ConfigRemote configRemote;
            configRemote = ServiceFinder.find("ConfigService", ConfigRemote.class);
            configRemote.update(configuracao2Record);
        } catch (ClassCastException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (NamingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    public IConfiguracao2 getConfiguracao2Record() {

        return configuracao2Record;
    }

    public void setConfiguracao2Record(IConfiguracao2 config) {

        configuracao2Record = config;

    }

}
[b]Código da Modal
<rich:modalPanel id="mpParametro" resizeable="false" moveable="true" width="400" autosized="true">
            <f:facet name="header">
                <h:outputText value="#{messages.PARAMETROS_ABA_2}" />
            </f:facet>
            <f:facet name="controls">
                <h:panelGrid columns="1" width="100%"
                    style="vertical-align: middle; text-align: right;">
                    <h:graphicImage value="#{messages.IMAGE_JANELA_FECHAR}"
                        style="cursor:pointer;"
                        onclick="Richfaces.hideModalPanel('mpParametro')" />
                </h:panelGrid>
            </f:facet>
            <a4j:form>
                <h:panelGrid width="100%" columns="2">
                    <h:outputText value="#{messages.PARAMETROS_TAB_1_COL_1}" />
                    <h:inputText value="#{parametros.configuracao2Record.parametro}" maxlength="40" />
                    <h:outputText value="#{messages.PARAMETROS_TAB_1_COL_2}" />
                    <h:inputText value="#{parametros.configuracao2Record.descricao}" maxlength="40" />
                    <h:outputText value="#{messages.PARAMETROS_TAB_1_COL_3}" />
                    <h:selectOneMenu id="tipoParametro"
                                    value="#{parametros.configuracao2Record.tipo}"
                                    style="width: 100%;">
                                    <f:selectItem itemValue="string" itemLabel="String" />
                                    <f:selectItem itemValue="integer" itemLabel="Integer" />
                                </h:selectOneMenu>
                    <h:outputText value="#{messages.PARAMETROS_TAB_1_COL_4}" />
                    <h:inputText value="#{parametros.configuracao2Record.valor}" maxlength="40" />
                </h:panelGrid>
                <h:panelGrid id="botoes" columns="1" width="100%" style="text-align: center;">
                    <h:panelGroup>
                        <a4j:commandButton id="bt_cancelar"
                        value="#{messages.PARAMETROS_BT_6}" onclick="Richfaces.hideModalPanel('mpParametro')"
                        oncomplete="this.disabled=false" reRender="richTabPanel"
                        style="#{propSkin.borda_botoes}" />
                               
                        <rich:spacer width="10" />
                               
                        <a4j:commandButton id="bt_alterar"
                        action="#{parametros.update}"
                        value="#{messages.PARAMETROS_BT_5}"
                        onclick="this.disabled=true" oncomplete="this.disabled=false"
                        reRender="richTabPanel"
                        style="#{propSkin.borda_botoes}"/>
                    </h:panelGroup>                            
                </h:panelGrid>
            </a4j:form>
        </rich:modalPanel>

1 Resposta

natalisilverio

Resolvido!

Alterei o escopo para página no seguinte trecho

//@Scope(ScopeType.CONVERSATION) @Scope(ScopeType.PAGE)

Criado 18 de maio de 2010
Ultima resposta 18 de mai. de 2010
Respostas 1
Participantes 1