индекс.xhtml:
<f:metadata>
<f:viewParam id="playernameparam" name="playernameparam" required="true"
requiredMessage="Player name required!"
value="#{playersBean.playerName}"/>
<f:viewParam id="playersurnameparam" name="playersurnameparam" required="true"
requiredMessage="Player surname required!"
value="#{playersBean.playerSurname}"/>
</f:metadata>
<h:message for="playernameparam" />
<h:message for="playersurnameparam" />
<h:head>
<title></title>
</h:head>
<h:body>
<h:form>
Enter name:<h:inputText value="#{playersBean.playerName}"/><br/>
Enter surname:<h:inputText value="#{playersBean.playerSurname}"/><br/>
For validation purpose: <h:inputText id="address"
value="#{playersBean.address}" required="true"
requiredMessage="Kindly fill your address location" /><br/>
<h:message for="address" style="color:red" /><br/>
<h:commandButton value="Submit" action="#{playersBean.action()}">
</h:commandButton>
</h:form>
</h:body>
результат.xhtml:
<f:metadata>
<f:viewParam name="playernameparam" value="#{playersBean.playerName}"/>
<f:viewParam name="playersurnameparam" value="#{playersBean.playerSurname}"/>
</f:metadata>
<h:head>
<title></title>
</h:head>
<h:body>
You requested name: <h:outputText value="#{playersBean.playerName}"/><br/>
You requested surname: <h:outputText value="#{playersBean.playerSurname}"/>
</h:body>
Управляемый компонент:
@ViewScoped
@ManagedBean(name = "playersBean")
public class PlayersBean implements Serializable {
private String playerName;
private String playerSurname;
private String address;
// getters & setters
public String action() {
return "results?faces-redirect=true&includeViewParams=true";
}
}
При попадании http://localhost:8080/Leonard/faces/ch2/index.xhtml?playernameparam=FARHAN&playersurnameparam=ANSARI
Оставьте поле «Для проверки» пустым, чтобы вызвать ошибку проверки.
а затем нажмите кнопку.
Теперь введите что-нибудь в то же поле и снова нажмите Enter.
Он отлично работает, и параметры просмотра есть, и перенаправленный URL-адрес отражает как:
Конечно будет, так как бин @ViewScoped
.
Но мой bean-компонент @RequestScoped вызывает проблему. Я потерял их, когда произошел сбой проверки, а затем последующий POST после удаления этой ошибки проверки с запросом POST, дающим этот результат:
Итак, вопрос сводится к тому, как сохранить параметры запроса?
<o:form>
вместо<f:param>
. - person BalusC   schedule 20.03.2016