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;
...
aktualizacjaOkazuje 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.