java.util. Карта с HtmlDataTable - PullRequest
       18

java.util. Карта с HtmlDataTable

0 голосов
/ 27 апреля 2010

Я разрабатываю приложение на GlassFish v3, которое использует Suns-RI JavaEE6 и JSF2.0 и т. Д. И плохо то, что нельзя вносить изменения / отсоединения от Suns RI (использовать MyFaces или что-то подобное) как это).

Теперь проблема в том, что я хочу собрать HtmlDatatable вручную (в коде Java). Таблица данных должна представлять собой java.util.Map, где первый столбец должен отображать ключ, а второй - значения карты.

Я успешно построил PanelGrid из java.util.List и каждый раз использовал методы setExpressionValue UIComponent для привязки пользовательского интерфейса к базовому списку.

Но теперь это не работает с картой. Вот фрагмент моего кода:

public HtmlDataTable getEntityDetailsDataTable() {
...
Application app = FacesContext.getCurrentInstance().getApplication();
HtmlDataTable component = (HtmlDataTable)app.createComponent(HtmlDataTable.COMPONENT_TYPE);
component.setValueExpression("value", ExpressionUtil.createValueExpression("#{entityTree.entity."+fieldName+".entrySet()}", Map.class));
component.setVar("param");
UIColumn column = new UIColumn();
UIOutput label1 = DynamicHtmlComponentCreator.createHtmlOutputText("#{param[key]}", String.class);
column.getChildren().add(label1);
UIOutput label2 = DynamicHtmlComponentCreator.createHtmlOutputText("#{param[value]}", String.class);
column.getChildren().add(label2);
component.getChildren().add(column);
...
return component;
}
component.getChildren().add(column);
...
return component;
}

Итак, проблема в том, что этот код печатает только содержимое карты, на другой странице мне нужны значения, отображаемые в элементах HtmlInputText, и обновляется вся карта, если пользователь нажимает кнопку «Сохранить», т. Е.
Итак, проблема в том, что этот код печатает только содержимое карты, на другой странице мне нужно, чтобы значения, отображаемые в элементах HtmlInputText, и вся карта обновлялись, если пользователь нажимает кнопку «Сохранить».

Если есть обходной путь, чтобы представить карту как списки ... пожалуйста, помогите мне, потому что для этого (карта в виде 2 списков) я понятия не имею, как можно снова обновить базовую модель карты / базы данных.

Надеюсь, кто-нибудь может мне помочь ....

1 Ответ

1 голос
/ 27 апреля 2010

Компоненты UIData не могут выполнять итерации по Set, поскольку они не обеспечивают способы получения / установки элементов по индексу. Это также не сработает, если вы закодируете это прямо на странице JSF. Замените его на List или DataModel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...