Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 引导面选择不使用ajax渲染的多菜单_Jsf_Bootsfaces_Ajax Update - Fatal编程技术网

Jsf 引导面选择不使用ajax渲染的多菜单

Jsf 引导面选择不使用ajax渲染的多菜单,jsf,bootsfaces,ajax-update,Jsf,Bootsfaces,Ajax Update,我使用的是bootsFaces中的selectMultiMenu,初始值显示得非常完美,但是在呈现新值后,组合不会打开,如果我检查浏览器中的源代码,它会显示bean正确地引导了这些值。这只发生在bootsFaces的元素中,我的项目的其余部分使用jsf呈现,而ajax没有问题。 有线索吗?谢谢 <h:form id="form-Principal"> <h:panelGroup id="panel-Principal" layou

我使用的是bootsFaces中的selectMultiMenu,初始值显示得非常完美,但是在呈现新值后,组合不会打开,如果我检查浏览器中的源代码,它会显示bean正确地引导了这些值。这只发生在bootsFaces的元素中,我的项目的其余部分使用jsf呈现,而ajax没有问题。 有线索吗?谢谢

            <h:form id="form-Principal">
            <h:panelGroup id="panel-Principal" layout="block" >
                <div class="col-md-12">                                 
                    <div class="col-md-1">
                        <label for="servicio" class="control-label">Servicio:</label>
                    </div>
                    <div class="col-md-2">
                        <h:selectOneMenu disabled="#{empty testops.ambiente}" id="servicio" class="combobox form-control" value="#{testops.servicio}" >
                            <f:selectItem itemValue="" itemLabel="Seleccione..."/>
                            <f:selectItems value="#{testops.listServicios}" />
                            <f:ajax event="change" listener="#{testops.obtenerOperaciones}" render="cboperacion" execute="@this"></f:ajax>
                        </h:selectOneMenu>
                        <h:message for="servicio" class="error"/>
                    </div>
                    <div class="col-md-1">
                        <label for="operacion" class="control-label">Operación:</label>
                    </div>
                    <div class="col-md-2">
                        <b:selectMultiMenu id="cboperacion" value="#{testops.operacion}" nonSelectedText="Seleccione...">
                             <f:selectItems value="#{testops.operaciones}"/>
                        </b:selectMultiMenu>
                    </div>
                    <div class="col-md-1">
                    </div>
                    <div class="col-md-1">
                        <f:ajax render=":salida form-Principal:panel-Principal" execute="@form" onevent="loading">
                            <h:commandLink class="btn btn-danger boton_rojo pull-right" value="Ejecutar" action="#{testops.ejecutarOperaciones()}"></h:commandLink>
                        </f:ajax>
                    </div>
                </div>                      
            </h:panelGroup>
        </h:form>enter code here

服务:
歌剧院:
在这里输入代码
加载:

渲染后,它有不同的值,但combo不显示。

我试图复制您的错误,但没有成功。或者更确切地说:代码按预期工作。
将使用新值更新

我知道这还不是答案。。。我之所以选择答案,是因为这是包含源代码的唯一方法。[/meta]

所以我建议你

  • 将下面的示例代码复制到您的项目中,看看是否有效
  • 或者你寄给我一个“复制器”,即一个显示问题的小而完整的项目。例如,您可以将Maven项目上载到GitHub。请尽可能减少复制次数。例如,我需要能够在不配置数据库的情况下运行它
以下是我用来重现您的bug的源代码:

  • 作为基础,我使用了我们的展示
  • 我将您的JSF代码片段复制到
    empty.xhtml
  • 我创建了一个JSFbean,如下所示:

    package de.beyondjava.jsf.sample.carshop;                                                                                                                                                                       
    
    import java.util.ArrayList;                                                                                                                                                                                     
    import java.util.List;                                                                                                                                                                                          
    
    import javax.faces.bean.ManagedBean;                                                                                                                                                                            
    import javax.faces.bean.SessionScoped;                                                                                                                                                                          
    
    @ManagedBean                                                                                                                                                                                                    
    @SessionScoped                                                                                                                                                                                                  
    public class Testops {                                                                                                                                                                                          
      private String ambiente = "que";                                                                                                                                                                              
    
      private List<String> listServicios = new ArrayList<>();                                                                                                                                                       
    
      private String operacion;                                                                                                                                                                                     
    
      private List<String> operaciones = new ArrayList<>();                                                                                                                                                         
    
      private String servicio;                                                                                                                                                                                      
    
      {                                                                                                                                                                                                             
        listServicios.add("Servicio 1");                                                                                                                                                                            
        listServicios.add("Servicio 2");                                                                                                                                                                            
        shuffleOperaciones();                                                                                                                                                                                       
      }                                                                                                                                                                                                             
    
      public void ejecutarOperaciones(Object o) {                                                                                                                                                                   
    
      }                                                                                                                                                                                                             
    
      public String getAmbiente() {                                                                                                                                                                                 
        return ambiente;                                                                                                                                                                                            
      }                                                                                                                                                                                                             
    
      public List<String> getListServicios() {                                                                                                                                                                      
        return listServicios;                                                                                                                                                                                       
      }                                                                                                                                                                                                             
    
      public String getOperacion() {                                                                                                                                                                                
        return operacion;                                                                                                                                                                                           
      }                                                                                                                                                                                                             
      public List<String> getOperaciones() {                                                                                                                                                                        
        return operaciones;                                                                                                                                                                                         
      }                                                                                                                                                                                                             
    
      public String getServicio() {                                                                                                                                                                                 
        return servicio;                                                                                                                                                                                            
      }                                                                                                                                                                                                             
    
      public void obtenerOperaciones(Object o) {                                                                                                                                                                    
        shuffleOperaciones();                                                                                                                                                                                       
      }                                                                                                                                                                                                             
    
      public void setAmbiente(String ambiente) {                                                                                                                                                                    
        this.ambiente = ambiente;                                                                                                                                                                                   
      }                                                                                                                                                                                                             
    
      public void setListServicios(List<String> listServicios) {                                                                                                                                                    
        this.listServicios = listServicios;                                                                                                                                                                         
      }                                                                                                                                                                                                             
    
    
      public void setOperacion(String operacion) {                                                                                                                                                                  
        this.operacion = operacion;                                                                                                                                                                                 
      }                                                                                                                                                                                                             
    
      public void setOperaciones(List<String> operaciones) {                                                                                                                                                        
        this.operaciones = operaciones;                                                                                                                                                                             
      }                                                                                                                                                                                                             
    
      public void setServicio(String servicio) {                                                                                                                                                                    
        this.servicio = servicio;                                                                                                                                                                                   
      }                                                                                                                                                                                                             
    
      private void shuffleOperaciones() {                                                                                                                                                                           
        operaciones = new ArrayList<>();                                                                                                                                                                            
        for (int i = 0; i < 4; i++) {                                                                                                                                                                               
          operaciones.add("opción " + Math.ceil(Math.random()*1000));                                                                                                                                               
        }                                                                                                                                                                                                           
      }                                                                                                                                                                                                             
    
    }                                                                                                                                                                                                               
    
    package de.beyondjava.jsf.sample.carshop;
    导入java.util.ArrayList;
    导入java.util.List;
    导入javax.faces.bean.ManagedBean;
    导入javax.faces.bean.SessionScoped;
    @ManagedBean
    @会议范围
    公共类测试操作{
    私有字符串ambiente=“que”;
    private List listServicios=new ArrayList();
    私人字符串操作;
    private List operaciones=new ArrayList();
    私人字符串服务;
    {                                                                                                                                                                                                             
    列表服务。添加(“服务1”);
    列表服务。添加(“服务2”);
    ShufflePeraciones();
    }                                                                                                                                                                                                             
    公共无效电子商务运营商(