在我的屏幕上使用ListShuttle,当我将值表格源移动到目标时它只在屏幕上发生,在bean中我将targetValue作为null。我使用List of String作为SourceValue。有些情况下工作正常。有些情况不起作用
我无法找到错误的地方。请帮我。提前致谢
这是我的xhtml代码:
<h:panelGrid columns="1">
<style type="text/css"> .lishShuttle td{vertical-align:top;}</style>
<rich:listShuttle id="rptColumn" styleClass="lishShuttle" onmouseover="this.style.cursor='pointer'" sourceValue="#{dynamicBean.selectedData.avlblRptClmn}" targetValue="#{dynamicBean.selectedData.selectedRptClmn}"
listsHeight="150" sourceListWidth="180" targetListWidth="180" var="items" showButtonLabels="false" valueChangeListener = "#{reportViewerBean.listShuttleListener}">
<rich:column>
<h:outputText value="#{items}"></h:outputText>
</rich:column>
<a4j:support event="onorderchanged" reRender="rptColumn" status="waitStatus" ajaxSingle="true" limitToList="true"/>
<a4j:support event="onlistchanged" reRender="rptColumn" status="waitStatus" ajaxSingle="true" limitToList="true"/>
</rich:listShuttle>
</h:panelGrid>
bean方法:
public void listShuttleListener(ValueChangeEvent event){
getLogger().debug("Inside listShuttleListener(ValueChangeEvent event)");
HtmlListShuttle listShuttle = (HtmlListShuttle)event.getComponent();
getLogger().debug(((List<String>)listShuttle.getTargetValue()).toString());
getLogger().debug(((List<String>)listShuttle.getSourceValue()).toString());
avlblRptClmn = (List<String>)listShuttle.getSourceValue();
selectedRptClmn = (List<String>)listShuttle.getTargetValue();
getLogger().debug("End listShuttleListener(ValueChangeEvent event)");
}
如果SourceValue行小于17,它在Tomcat和Websphere中工作正常,如果它超过17,则在websphere中它不起作用,listShuttleListener方法未被调用。我在这3天多的时间里都在挣扎,有些人会帮助我。
答案 0 :(得分:0)
它不是17个元素的问题。因为,任何源String都有多个空格,然后列表中的shuttle,selectOneMenu和Pick list都不能在Web领域中工作。