繁体   English   中英

具有HtmlDataTable的java.util.Map

[英]java.util.Map with HtmlDataTable

我正在GlassFish v3上开发一个应用程序,该应用程序使用JavaEE6的Suns-RI和JSF2.0等。坏的是,无法对Suns RI进行任何更改/切换(使用MyFaces或类似的东西) 。

现在的问题是,我想手动构建HtmlDatatable(在Java代码中)。 数据表应表示一个java.util.Map,其中第一列应显示键,第二列应显示映射值。

我已经从java.util.List成功构建了PanelGrid,并在每次UIComponent的“ setExpressionValue”方法将UI绑定到基础List时使用。

但是现在,这不适用于地图。 这是我的代码片段:

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;
}

因此,进一步的问题是,此代码仅打印出Map的内容,在另一页上,我需要在HtmlInputText元素中显示的值,并且如果用户单击“保存”按钮即更新了整个地图。
因此,进一步的问题是,此代码仅打印出Map的内容,在另一页上,我需要在HtmlInputText元素中显示的值,并且如果用户单击“保存”按钮即更新了整个地图。

如果有解决方法,以列表的形式表示地图...请帮助我,因为对于此(地图为2个列表),我不知道如何再次更新基础地图/数据库模型。

希望有人可以帮助我...

UIData组件无法迭代Set因为它不提供按索引获取/设置元素的方法。 当您直接在JSF页面中进行编码时,它也不起作用。 将其替换为ListDataModel

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM