Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JSF CRUD проблема с selectOneMenu и hibernate 
:(
    Опции темы
diktator
Дата 12.8.2013, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 27.5.2010

Репутация: нет
Всего: нет



Здравствуйте. Хочу сделать CRUD для бинов, нужно чтобы selectOneMenu заполнила в сущности связь много к одному. 

Поле selectOneMenu 
Код
<h:selectOneMenu value="#{taskBean.instance.currency}" class="form-control" id="currencyList" converter="#{currencyConverterBean}">
                <f:selectItems value="#{currencyBean.currencyList}" var="currency" itemLabel="#{currency.name}"/>
</h:selectOneMenu>


#{taskBean.instance} возвращает сущность Task 

Сущность Task
Код
@Entity
@Table(name="task")
public class Task {
    //...

    public Currency currency;

    @ManyToOne
    @JoinColumn(name = "currencyID")
    public Currency getCurrency() {
        return currency;
    }

    //...
}


Если в selectOneMenu  указать value = "#{taskBean.instance.currency.id}" и itemValue ="#{currency.id}" то так не срабатывает, поэтому пытаюсь сделать через converter. 

конвертер #{currencyConverterBean}
Код
@ManagedBean(name="currencyConverterBean")
@FacesConverter(value = "currencyConverter")
@RequestScoped
public class CurrencyConverter implements Converter {

    CurrencyBO currencyBO;

    @Override
    public Currency getAsObject(FacesContext ctx, UIComponent component, String value) {
        return getCurrencyBO().getCurrencyById(new Integer(value));
    }

    @Override
    public String getAsString(FacesContext fc, UIComponent uic, Object o) {
        return String.valueOf(((Currency) o).getId());
    }

    public CurrencyBO getCurrencyBO() {
        return currencyBO;
    }

    public void setCurrencyBO(CurrencyBO currencyBO) {
        this.currencyBO = currencyBO;
    }
}


И в общем не работает, выдает ошибку
Код
PWC1406: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NullPointerException    at com.otv.converter.CurrencyConverter.getAsObject(CurrencyConverter.java:33)


Подскажите пожалуйста что я не так делаю? Через бин если id задавать и связи то работает, но через конвертер если получиться будет меньше работы.
PM MAIL   Вверх
diktator
Дата 13.8.2013, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 27.5.2010

Репутация: нет
Всего: нет



Спасибо всем кто пытался помочь. Решил проблему, заключалась в следующем в entity нужно было создать метод equals() и hashCode(). Ну и в конвертере для currencyBO добавить @ManagedProperty, ну это я уже сам удалил. Решение тут
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0580 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.