如何在<h:selectonemenu>中选择列表的第一项并在初始加载期间为第一个选定项目呈现页面</h:selectonemenu>

时间:2013-08-22 18:16:30

标签: jsf render selectonemenu

我有以下代码:

<h:selectOneMenu value="#{AssetSummaryPageModel.selectedSensorId}"                                  styleClass="facility_dropDown_list" required="true" >

<f:selectItems value="#{AssetSummaryPageModel.childFacilitySelectionList}" required="true" />
<a4j:ajax event="valueChange" execute="@this" status="nameStatus"
                                    render="assetSummaryMainPanel"/>                                            
</h:selectOneMenu>

当我从下拉列表中选择一个项目时,它将呈现所选项目的页面。但是,我想在初始加载期间渲染页面(使用下拉列表的第一项)。我怎样才能做到这一点。任何帮助请!!!!

2 个答案:

答案 0 :(得分:1)

这很容易。在你的AssetSummaryPageModel - Bean中,你将添加一个带有@PostConstruct注释的新方法,以便在构造bean之后调用它。在此方法中,您会将selectedSensorId设置为childFacilitySelectionList的第一项。

当您的页面被渲染时,JSF将看到已经选择了一个值并将其设置为所选的一个。

@PostConstruct
public void init() {
    selectedSensorId = childFacilitySelectionList.get(0);
}

答案 1 :(得分:0)

我得到了问题的答案。我在Pagemodel-Bean中的init()方法中声明了以下代码,并在初始加载期间加载它:

selectedSensor = getAsset().getCompanyModuleAssets().get(0);
                selectedSensorId = selectedSensor.getCoModAssetId();

谢谢: - )