Я разрабатываю приложение на 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 списков) я понятия не имею, как можно снова обновить базовую модель карты / базы данных.
Надеюсь, кто-нибудь может мне помочь ....