我需要你的帮助。
我正在使用jsf2.0和primefaces 3.2开发一个简单的项目。
我首先有2页是page1.xhtml whci包含:
<p:column>
<p:panel header="#{ct.coTypeName}" >
<h:panelGrid columns="1" width="100" height="100">
<h:outputText value="#{ct.coTypeId}" />
<p:commandLink action="distributer/distributersList.xhtml">
<h:graphicImage url="/resources/images/homePagecartoonBusinessMan.jpg" width="100" height="100"/>
<f:param name="bt" value="dist" />
<f:param name="ti" value="#{ct.coTypeId}" />
</p:commandLink>
</h:panelGrid>
</p:panel>
</p:column>
</p:dataGrid>
当我按下命令链接时,它将我转发到另一个页面“distributer / distributersList.xhtml”,其中有一个selectOneMenu,它不显示其项目,直到我手动刷新页面只发生在IE“我正在使用Internet Explorer 8“但这个问题不会发生在chrome或firefox上。
我收到javascript错误..网页错误详情
Message: Object expected
Line: 19
Char: 1
Code: 0
URI: http://localhost:8089/pro/
Message: Object doesn't support this property or method
Line: 1
Char: 5500
Code: 0
URI: http://localhost:8089/pro/faces/javax.faces.resource/primefaces.js? ln=primefaces&v=3.2
selectonemenucode是:
<p:selectOneMenu value="#{bussinessOwnersViewerMB.selectedCity}" effect="fold" immediate="true">
<f:selectItems value="#{bussinessOwnersViewerMB.cities}" var="city" itemLabel="#{city.cityName}" itemValue="#{city.cityId}"/>
</p:selectOneMenu>
城市arraylist的吸气剂是:
public ArrayList<CityDto> getCities() {
cities = cb.laodAllCities();
System.out.println(">>>>"+cities.size());
return cities;
}
和system.out ..给我正确的arraylist大小的消息但dropdownList项目在我刷新页面之前不会出现!
答案 0 :(得分:0)
如果使用f:selectItems标记,则不需要itemLabel和itemValue标记。当您使用f:selectItem而不使用's'时,将需要这些标记。请尝试此示例
<f:selectItems value="#{bussinessOwnersViewerMB.cityList}" var="city">
以下是获取城市的示例方法
List<SelectItem> cityList = new ArrayList<SelectItem>();
for (City city : cities) {
SelectItem item = new SelectItem();
item.setLabel(city.getCityName());
item.setValue(city.getCityId());
cityList.add(item);
}
将f:selectItems值绑定到更改原始城市列表的cityList(检查上面)。
答案 1 :(得分:0)
`
if (isLoaded)
{
return;
}
isLoaded = true;
` 如果您需要刷新页面int,请执行以下操作
isLoaded=false;