Я разрабатываю приложение на GlassFish v3, которое использует Suns-RI JavaEE6 и JSF2.0 и т. Д. И плохо то, что никакие изменения/отключение от Sun RI не может быть (использовать MyFaces или что-то в этом роде).java.util.Map с HtmlDataTable
Проблема в том, что я хочу построить HtmlDatatable вручную (в Java-коде). Datatable должен представлять 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, и вся карта обновляется, если пользователь нажимает кнопку i.e. «Сохранить».
Если есть временное решение, чтобы представить карту как список ... пожалуйста, помогите мне, потому что для этого (карта как 2 списка) я не знаю, как обновить базовую модель карты/базы данных.
Будем надеяться, что кто-то может мне помочь ....
Теперь я реализовал собственный класс KeyValuePair, объекты которого хранятся в списке. Запрос ключей не так быстр, но на данный момент он работает. Благодаря BalusC! – gerry