Нет.По крайней мере, не без написания специального распознавателя EL, который не совсем тривиален.
Лучше всего обернуть его в объект, который не раскрывает значение с помощью метода получения Javabean.Например,
public class UserWrapper implements Serializable {
private User user;
public UserWrapper(User user) {
this.user = user;
}
public User get() {
return user;
}
}
Вместо этого сохраните его в сеансе следующим образом.
session.setAttribute("user", new UserWrapper(user));
Вместо этого получите его из сеанса следующим образом.
User user = ((UserWrapper) session.getAttribute("user")).get();
Этот метод недоступенв EL.По крайней мере, в версиях EL до 2.2, где в противном случае вы могли бы просто сделать #{user.get()}
.
Альтернативы заключаются в том, чтобы сделать метод getter класса оболочки защищенным, чтобы он был доступен только для классов в том же пакете и/ или подклассы (EL требует, чтобы это было публично).
protected User get() {
return user;
}
Или даже сделать весь класс-оболочку внутренним классом, закрытым или защищенным пакетом.