Fasola o zasięgu widoku odtworzona na POST, gdy parametry adresu URL nie są używane

mamzakres widoku Komponent bean zarządzany przez JSF, który tworzy kopię zapasowąxhtml zobacz gdzie czytam jeden parametr z adresu URL za pomocąf: viewParam.

Widok przedstawia formularz użytkownikowi. Jednak gdy użytkownik przesyła formularz, naciskającp: commandButton wygląda na to, że fasola o zasięgu wzroku jest odtwarzana (dodałem@PostConstruct adnotacja do weryfikacji tego) i dlatego nie pamięta zmiennej instancji odczytanej zf: viewParam (invid w poniższym kodzie).

Początkowo nawiguję do widoku za pomocąDOSTAĆ to obejmujeURL parametr, aleSŁUPEK wiadomość wysyłana, gdy użytkownik naciśniep: commandButton nie zawieraURL parametr. Tak więc myślę, że gdy środowisko wykonawcze JSF nie widzi parametru URL wSŁUPEK uważa to za inny widok i odtwarza komponent bean zarządzany przez JSF. Kiedy zmieniam zakres widoku nazakres sesji kod działa.

Oto kod:

widok
<f:metadata>
    <f:viewParam name="invId" value="#{registerBean.invId}"/>
</f:metadata>
<h:form id="registrationForm">
     ....
    <p:commandButton value="register" action="#{registerBean.register}"
                     icon="ui-icon ui-icon-newwin" ajax="false"/>
</h:form>
fasola podkładowa
@ManagedBean                                      
@ViewScoped
public class RegisterBean implements Serializable {
    @ManagedProperty(value="#{invId}")
    private String invId;
    ...
aktualizacja

Okazuje się, że nie było to wcale związane z parametrami URL. NastępującyBalusC porady poniżej usunąłemc: kiedy znaczniki używane przez mój widok (poleganie narenderowane atrybuty zamiast tego samego efektu), a teraz fasola o zasięgu widoku nie jest już odtwarzana iinvid pole jest prawidłowo zachowane.

questionAnswers(1)

yourAnswerToTheQuestion