Я использую управляемые компоненты SessionScoped в своем приложении:
@ManagedBean
@SessionScoped
public class SampleBean{
private String value;
//getters and setters
}
У меня есть мой контроллер:
@ManagedBean
@SessionScoped
public class SampleController{
@ManagedProperty(value = "#{sampleBean}")
private SampleBean sampleBean;
public String showConfirm() {
return "confirm";
}
public String showComplete() {
return "complete";
}
//getters and setters
}
Логика заключается в том, что у меня есть начальная страница, на которой я ввожу значения. Затем она переходит на страницу подтверждения и, наконец, на страницу завершения. Я должен показать данные, введенные на стартовой странице, на остальных страницах.
Стартовая страница выглядит следующим образом:
файл запуска.xhtml
<h:inputText value="#{sampleBean.value}">
<h:commandLink value="Confirm" action="#{sampleController.showConfirm()}">
На странице подтверждения я хочу показать эти данные.
подтвердить.xhtml
<h:outputFormat value="#{sampleBean.value}">
Однако я не получаю никакого значения, отображаемого здесь. Я попытался поместить эти значения в sessionMap в методе showConfirm()
.
public String showConfirm() {
FacesContext context = FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("sampleBean", sampleBean);
return "confirm";
}
Но также я не могу просмотреть эти значения в файле confirm.xhtml.
Только если я использую <h:outputFormat value="#{sessionScope.sampleBean.value}">
, значения отображаются. Кроме того, я хотел бы сделать это, используя только SessionScope, поскольку все это является частью более крупного приложения с сеансами. Есть ли альтернатива, чтобы сделать это?
<h:form>
? - person Mr.J4mes   schedule 20.09.2013<h:form>
. Я верю, что делаю что-то неправильно в своем контроллере. - person Jini Samuel   schedule 23.09.2013