На JSF 2.2
у нас нет возможности установить View Scope
на faces-config.xml
.
Так как же это сделать? Отсутствует ли область просмотра в JSF 2.2?
Благодарю вас!
На JSF 2.2
у нас нет возможности установить View Scope
на faces-config.xml
.
Так как же это сделать? Отсутствует ли область просмотра в JSF 2.2?
Благодарю вас!
Используйте аннотацию @ViewScoped
для управляемого компонента:
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean
@ViewScoped
public class AViewScopedBean {
//managed bean contents...
}
Если вам не нравится конфигурация аннотаций (действительно странная), вы можете просто установить область просмотра в Faces-config.xml
<managed-bean>
<managed-bean-name>aViewScopedBean<managed-bean-name>
<managed-bean-class>some.package.AViewScopedBean</managed-bean-class>
<managed-bean-scope>view</managed-bean-scope>
</managed-bean>
Обратите внимание, что это работает только в JSF 2. Убедитесь, что ваш файл faces-config настроен для работы с версией JSF 2.x:
<!-- relevant part of faces-config.xml file for this Q/A -->
<faces-config ... version="2.1">
Note: Warning make sure its Serializable
Сообщение об ошибке довольно простое:
java.io.NotSerializableException: com.bean.StatusBean2
Это означает, что ваш com.bean.StatusBean2
должен также реализовывать интерфейс Serializable
. Из документации java.io.Serializable
:
При обходе графа может встретиться объект, не поддерживающий интерфейс Serializable. В этом случае будет выброшено
NotSerializableException
, которое идентифицирует класс несериализуемого объекта. (это ошибка, которую вы получаете)
Вы можете узнать больше о сериализации Java здесь: Сериализация Java
Из вашего вопроса: необходимо ли реализовать сериализуемость?, BalusC уже опубликовал хороший ответ/объяснение: поддержка JSF bean должен быть сериализуемым? Спасибо за @Luiggi Mendoza