2012-01-18 149 views
3

我有一個由鏈接圖像組成的設計。 他們必須像選擇組件一樣工作,例如,當我點擊一個鏈接,在後面我控制選擇哪一個。 用戶想要提交他/她的更改後,他/她單擊提交按鈕並保存選擇。不能在鏈接上重新加載頁面點擊

所以我需要一個h:blahblah組件來獲得選擇,當用戶單擊它時不會重新加載頁面,也可能再次單擊以取消選擇,可能再次單擊以再次選擇。

我需要h:組件,因爲我可以很容易地改變他們的CSS。

我也很高興,如果你分享你的建議,我怎樣才能完成這項工作。

感謝


我的同事解決

<h:outputLink value="javascript:void(0);"><p:ajax event="click" 
        listener="#{beanView.method()}"/>My Link</h:outputLink> 
+0

http://www.horstmann.com/corejsf/jsf-tags.html#Table4_20這裏的選擇,你可以處理值改變像「值= {#JSF標籤myBean.selectedItemString}',你可以將selectedItemString作爲私有字符串添加到你的bean類中,然後你可以通過getter和setter訪問並檢查primefaces:http://www.primefaces.org/showcase-labs/ui/selectOneMenu.jsf – HRgiger

回答

1

你可以結合使用<f:ajax>與這個@ViewScoped託管bean。讓listener<f:ajax>設置選定的圖像值。您可以在<h:graphicImage>之內嵌套<f:ajax>

<h:form> 
    <h:graphicImage name="image1.png"> 
     <f:ajax event="click" listener="#{bean.setSelectedImage('image1')}" /> 
    </h:graphicImage> 
    <h:graphicImage name="image2.png"> 
     <f:ajax event="click" listener="#{bean.setSelectedImage('image2')}" /> 
    </h:graphicImage> 
    <h:graphicImage name="image3.png"> 
     <f:ajax event="click" listener="#{bean.setSelectedImage('image3')}" /> 
    </h:graphicImage> 
    <h:commandButton value="Submit" action="#{bean.submit}" /> 
</h:form> 

@ManagedBean 
@ViewScoped 
public class Bean { 

    private String selectedImage; 

    public void submit() { 
     System.out.println(selectedImage); 
    } 

    // ... 
} 
相關問題