0

我的环境:W7、Eclipse Indigo 3.7.2、Tomcat 6.0.35、jdk 1.7.02、jsf 2.0(Mojarra 2.03)、JSTL 1.2。尝试为更复杂的情况实现级联下拉列表,作为最终试验,我编写了一个非常简单的 xhmtl,它从 selecOneMenu 中选择一个项目,并通过 f:ajax 条目立即将其内容放入 outputText 中。菜单显示正确,但是,当我更改选择时,outputText 没有任何反应。我不知道哪里错了:你能帮帮我吗?谢谢。

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"                                    
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">                                    

  <html xmlns="http://www.w3.org/1999/xhtml"                                                        
    xmlns:ui="http://java.sun.com/jsf/facelets"                                                     
    xmlns:h="http://java.sun.com/jsf/html"                                                          
    xmlns:f="http://java.sun.com/jsf/core"                                                          
    xmlns:p="http://primefaces.org/ui">                                                             


  <ui:composition template="/WEB-INF/template/BasicTemplate.xhtml">                                 
    <ui:define name="content">                                                                      
        <f:view>                                                                                      
        <h:form>                                                                                      
            <h:selectOneMenu id="firstDropDown" value="#{twoMenusBean.first}" style="width: 110px; ">   
                    <f:selectItems value="#{twoMenusBean.items}" />                                         
                    <f:ajax render="secondDropDown" immediate="true" ></f:ajax>                             
            </h:selectOneMenu>                                                                          


                <h:outputText id="secondDropDown" value="#{twoMenusBean.first}" ></h:outputText>          

            </h:form>                                                                                   
        </f:view>                                                                                     
    </ui:define>                                                                                    
  </ui:composition>                                                                                 
  </html>                                                                                           

豆子:

package myJava;




  @ManagedBean (name="twoMenusBean")                                   
  @SessionScoped                                                       

  public class twoMenusBean  {                                         

    private List<String> menu1List = new ArrayList<String>();          
    private String first;                                              

    public  twoMenusBean(){                                            

            menu1List.add("item 1");                                       
            menu1List.add("item 2");                                       
            first ="item 1";                                               
    }                                                                  
    public String getFirst(){                                          
        return first;                                                    
    }                                                                  
    public void setFirst(String first){                                
        this.first = first;                                              
    }                                                                  

    public List<SelectItem> getItems(){                                
        List<SelectItem> x = new ArrayList<SelectItem>();                
        for (int i = 0; i < menu1List.size() ;i++) {                     
            x.add(new SelectItem(menu1List.get(i),menu1List.get(i)));      
        }                                                                
        return x;                                                        
    }                                                                  
  }                                                                    
4

1 回答 1

0

删除immediate="true":它具有跳过字段更新的副作用(setFirst不会被调用)。

于 2013-01-03T13:00:44.783 回答