Я использую SessionScoped Managed Beans в моем приложении:Доступ к SessionScoped Фасоль в страницах JSF
@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
}
Логика в том, что, у меня есть страница запуска, где я введите значения. Затем он перейдет на страницу подтверждения, а затем, наконец, на страницу «Полный». Я должен показать данные, введенные на стартовой странице на оставшихся страницах.
страница запуска выглядит следующим образом:
startup.xhtml
<h:inputText value="#{sampleBean.value}">
<h:commandLink value="Confirm" action="#{sampleController.showConfirm()}">
На странице подтверждающим, я хочу, чтобы показать эти данные.
confirm.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 только потому, что все это является частью более крупного приложения с сеансами. Есть ли альтернатива?
Вы забыли использовать '' тег? –
Спасибо, но я использовал '' тег. Я верю, что в своем контроллере я ошибаюсь. –