У меня возникла неприятная проблема, когда я заполняю детализированный выбор из двух selectOneMenu. Первое меню — это Сектор, которое управляет вторым Категорией. Я загружаю выделение для Категории в зависимости от Сектора, и все это работает нормально.
Но когда я редактирую бизнес-объект, к которому прикреплена Категория (есть один) Сектор к этому. Категория не отображается при первой загрузке страницы edit.xhtml. Я знаю, что значение правильное в вспомогательном компоненте SessionScoped. Если я выберу другую категорию сектора, а затем вернусь к исходному сектору, категория будет правильно установлена, и она сохранится в первую очередь.
Классы POJO (сектор -Category) имеет функции hashCode() и Equals(Object object).
У меня есть сгенерированные CRUD конвертеры JSF для объекта POJO, но я не думайте, что это вызывает проблему. Я думаю, что второй selectOneMenu по какой-то причине не отображает свое значение должным образом. Если я переверну родительский элемент (сектор) на что-то другое и обратно в исходное состояние, отобразится правильное значение из управляемого компонента.
Как я могу создать категорию Компонент selectOneMenu отображает значение в управляемом компоненте?
Привет, Крис!
Сообщение об ошибке Faces< /p>
FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=null[severity=(ERROR 2), summary=(No activity selected), detail=(No activity selected)]
Edit.xhtml
...
...
Компонент-контроллер для категории
@ManagedBean(name = "categoryController")
@SessionScoped
public class CategoryController implements Serializable{
....
@FacesConverter(forClass = Category.class)
public static class CategoryControllerConverter implements Converter {
@Override
public Object getAsObject(FacesContext facesContext, UIComponent component, String value) {
if (value == null || value.length() == 0) {
return null;
}
CategoryController controller = (CategoryController) facesContext.getApplication().getELResolver().
getValue(facesContext.getELContext(), null, "categoryController");
return controller.ejbFacade.find(getKey(value));
}
java.lang.Integer getKey(String value) {
java.lang.Integer key;
key = Integer.valueOf(value);
return key;
}
String getStringKey(java.lang.Integer value) {
StringBuffer sb = new StringBuffer();
sb.append(value);
return sb.toString();
}
@Override
public String getAsString(FacesContext facesContext, UIComponent component, Object object) {
if (object == null) {
return null;
}
if (object instanceof Category) {
Category o = (Category) object;
return getStringKey(o.getIdCategory());
}
else {
throw new IllegalArgumentException("object " + object + " is of type " + object.getClass().getName() + "; expected type: " + CategoryController.class.getName());
}
}
}
Часть объекта POJO
...
public class Category implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "idCategory")
private Integer idCategory;
...
Подробнее здесь: https://stackoverflow.com/questions/771 ... rent-child
Отображение значений в детализированном SelectOneMenus (Parent-Child) ⇐ JAVA
Программисты JAVA общаются здесь
1737316737
Anonymous
У меня возникла неприятная проблема, когда я заполняю детализированный выбор из двух selectOneMenu. Первое меню — это [b]Сектор[/b], которое управляет вторым [b]Категорией[/b]. Я загружаю выделение для Категории в зависимости от Сектора, и все это работает нормально.
Но когда я редактирую бизнес-объект, к которому прикреплена Категория (есть один) Сектор к этому. Категория не отображается при первой загрузке страницы edit.xhtml. Я знаю, что значение правильное в вспомогательном компоненте SessionScoped. Если я выберу другую категорию сектора, а затем вернусь к исходному сектору, категория будет правильно установлена, и она сохранится в первую очередь.
Классы POJO (сектор -Category) имеет функции hashCode() и Equals(Object object).
У меня есть сгенерированные CRUD конвертеры JSF для объекта POJO, но я не думайте, что это вызывает проблему. Я думаю, что второй selectOneMenu по какой-то причине не отображает свое значение должным образом. Если я переверну родительский элемент (сектор) на что-то другое и обратно в исходное состояние, отобразится правильное значение из управляемого компонента.
Как я могу создать категорию Компонент selectOneMenu отображает значение в управляемом компоненте?
Привет, Крис!
Сообщение об ошибке Faces< /p>
FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=null[severity=(ERROR 2), summary=(No activity selected), detail=(No activity selected)]
Edit.xhtml
...
...
Компонент-контроллер для категории
@ManagedBean(name = "categoryController")
@SessionScoped
public class CategoryController implements Serializable{
....
@FacesConverter(forClass = Category.class)
public static class CategoryControllerConverter implements Converter {
@Override
public Object getAsObject(FacesContext facesContext, UIComponent component, String value) {
if (value == null || value.length() == 0) {
return null;
}
CategoryController controller = (CategoryController) facesContext.getApplication().getELResolver().
getValue(facesContext.getELContext(), null, "categoryController");
return controller.ejbFacade.find(getKey(value));
}
java.lang.Integer getKey(String value) {
java.lang.Integer key;
key = Integer.valueOf(value);
return key;
}
String getStringKey(java.lang.Integer value) {
StringBuffer sb = new StringBuffer();
sb.append(value);
return sb.toString();
}
@Override
public String getAsString(FacesContext facesContext, UIComponent component, Object object) {
if (object == null) {
return null;
}
if (object instanceof Category) {
Category o = (Category) object;
return getStringKey(o.getIdCategory());
}
else {
throw new IllegalArgumentException("object " + object + " is of type " + object.getClass().getName() + "; expected type: " + CategoryController.class.getName());
}
}
}
Часть объекта POJO
...
public class Category implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "idCategory")
private Integer idCategory;
...
Подробнее здесь: [url]https://stackoverflow.com/questions/7714742/display-values-in-drill-down-selectonemenus-parent-child[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия