<p>Welcome #{sessionScope.authUser.name}</p>
Эта строка кода может вызвать это исключение.
java.lang.NumberFormatException: For input string: "email"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:449)
at java.lang.Integer.parseInt(Integer.java:499)
at javax.el.ListELResolver.toInteger(ListELResolver.java:407)
at javax.el.ListELResolver.getValue(ListELResolver.java:199)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at com.sun.el.parser.AstValue.getValue(AstValue.java:116)
at com.sun.el.parser.AstValue.getValue(AstValue.java:163)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:219)
...
Смотри, здесь задействовано ListELResolver
.Это говорит о том, что у вас есть где-то что-то вроде
#{bean.list.email}
, где #{bean.list}
фактически возвращает List
, и, таким образом, к нему нужно обращаться по целочисленному индексу, используя обозначение скобки []
, как показано ниже, чтобы получить1-й элемент (который, в свою очередь, должен иметь свойство email
):
#{bean.list[0].email}
Обновление Согласно вашему обновлению, реальный код -
<p>Welcome #{sessionScope.authUser.email}</p>
authUser
, по-видимому, реализует List
или расширяет один из его подклассов.Это не имеет смысла для управляемого компонента.Удалите интерфейс или подкласс из объявления класса управляемого компонента.Достаточно всего лишь следующего:
@ManagedBean
@SessionScoped
public class AuthUser implements Serializable {
// ...
}
Кроме того, хотя явное указание области действия, как в #{sessionScope.authUser}
, может быть полезно для целей самодокументирования, в этом нет необходимости.Просто используйте #{authUser}
.
Обновите 2 в соответствии с комментариями: вы, похоже, вручную поместили объект в область действия сеанса, которая на самом деле является List
.Это подозрительноПодумайте об использовании обычного управляемого объекта EJB, который вы вводите в качестве управляемого свойства в объекте EJB, который обрабатывает вход в систему.