2011-08-19 137 views
1

我有一个页面,被称为与用于选择下拉元素JSF请求参数

<h:selectOneMenu value="#{bean.selectedService}"> 
    <f:selectItems value="#{bean.getServices(param.id)}" var="_s" 
    itemLabel="#{_s.description}" itemValue="#{_s.value}" /> 
    <f:ajax render="@all" /> 
</h:selectOneMenu> 

请求参数ID是没有任何简单的可能性,我可以保持param.id在AJAX请求中。目前它已经丢失。

回答

1

使其成为视图参数。

<f:metadata> 
    <f:viewParam name="id" value="#{bean.id}" required="true" /> 
    <f:event type="preRenderView" listener="#{bean.preRenderView}" /> 
</f:metadata> 

@ManagedBean 
@ViewScoped 
public class Bean { 

    private Long id; 
    private List<Service> services; 

    public void preRenderView() { 
     if (services == null) { 
      services = getServices(id); 
     } 
    } 

    // ... 
} 

<f:selectItems value="#{bean.services}" ... />