从selectOneMenu JSF获取值

时间:2011-07-21 16:22:17

标签: java javascript jsp jsf-2

<f:view>
 <h:form>
  <h:panelGrid>
   <f:facet name="header">
    <h:outputText value="Create Order"/>
   </f:facet>
   <h:column>
    <h:outputText value="Customer Number : "></h:outputText>
    <h:inputText value="#{SalesCreate.orderBean.customerNumber}"/>
   </h:column>
   <h:column>
    <h:outputText value="Create With : "></h:outputText>
     <h:selectOneMenu id="createWith" value="#{SalesCreate.orderBean.createWith}">
      <f:selectItem itemLabel="Without Reference" itemValue="noRef"/>
      <f:selectItem itemLabel="Reference" itemValue="ref"/>                            
     </h:selectOneMenu>
    </h:column>        
    <h:column>
     <h:outputText value="Reference By : "></h:outputText>
      <h:selectOneMenu id="refBy" value="#{SalesCreate.orderBean.referenceBy}">
       <f:selectItem itemLabel="Quotation" itemValue="quotation"/>
       <f:selectItem itemLabel="Contract" itemValue="contract"/>
      </h:selectOneMenu>
     </h:column>  
     <h:column>
     <h:outputText value="Inquiry Reference Number : "></h:outputText>
      <h:inputText id="docNum" value="#{SalesCreate.orderBean.referenceNum}"/>
      <h:commandButton value="..." onclick="javascript:popUp('OpenRef.jsp',this)">                          
      </h:commandButton>
      <h:commandButton value="Load" action="#{SalesCreate.getQuotationListFromDb}">                  </h:commandButton>                        
     </h:column>           
   </h:panelGrid>
  </h:form>
 </f:view>

上面是我的JSP,其中包含selectOneMenu,我只是在用户在上一个字段中选择referenceBy时尝试启用字段withReference。同样取决于referenceBy的值,弹出窗口中的值应该不同,即ID用户选择referenceByquotation,弹出窗口中的值应与quotation相关联。 弹出JSP包含一个包含数据库值的数据表。

1 个答案:

答案 0 :(得分:2)

使用<f:ajax>在新JSF 2.0 ajax的帮助下重新渲染第一个下拉列表更改的第二个下拉列表并使用disabled属性禁用第二个下拉列表时的值第一个下拉列表不是ref

<h:selectOneMenu id="createWith" value="#{SalesCreate.orderBean.createWith}">
  <f:selectItem itemLabel="Without Reference" itemValue="noRef"/>
  <f:selectItem itemLabel="Reference" itemValue="ref"/>
  <f:ajax render="refBy" />
</h:selectOneMenu>
...
<h:selectOneMenu id="refBy" value="#{SalesCreate.orderBean.referenceBy}" disabled="#{SalesCreate.orderBean.createWith != 'ref'}">
  <f:selectItem itemLabel="Quotation" itemValue="quotation"/>
  <f:selectItem itemLabel="Contract" itemValue="contract"/>
</h:selectOneMenu>
相关问题