Acessando consulta-parâmetros de seqüência de caracteres em um post construir método em um modo de exibição de escopo do bean gerenciado

StackOverflow https://stackoverflow.com//questions/23022831

  •  21-12-2019
  •  | 
  •  

Pergunta

Eu tenho a seguinte página XHTML.

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:c="http://java.sun.com/jsp/jstl/core"
      xmlns:ui="http://java.sun.com/jsf/facelets">

    <h:head>
        <title>Test</title>
    </h:head>

    <f:metadata>
        <f:viewParam name="id" value="#{testManagedBean.id}" maxlength="20"/>
    </f:metadata>

    <h:body>
        <h:form id="form" prependId="true">

        </h:form>
    </h:body>
</html>

O managed bean corresponde ao acima JSF página.

@ManagedBean
@ViewScoped
public final class TestManagedBean implements Serializable
{
    private static final long serialVersionUID = 1L;
    private Long id;

    @PostConstruct
    private void init() {
        System.out.println("id = "+id);
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
}

Eu estou de passagem id como uma consulta parâmetro de seqüência de caracteres usando a URL - https://localhost:8181/Project-war/admin_side/Test.jsf?id=1.

Tentando exibir id no init() o método é sempre null.

Esta é uma demonstração.Na realidade, <f:viewParam> é, na verdade, colocar dentro de <ui:define name="metaData"> e sobre o modelo de mestre <ui:insert name="metaData"/> é definido.

O que estou vista aqui?

Eu tenho vários tempos passados como parâmetros e convertido para uma entidade JPA usando conversores adequados, mas eu não sei por que um valor escalar não está sendo definida como uma propriedade de um managed bean.Eu tentei mudar o tipo de id a Cadeia de caracteres, mas que também não ajuda (nem @ManagedProperty(value="#{id}") trabalhou).

Foi útil?

Solução

O valor de f:viewParam não está disponível durante a @PostConstruct.Utilização f:viewAction em vez disso.

Ver

Veja também

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top