2017-10-10 39 views
0

我正在使用PrimeFaces 6.0。我使用了selectOneRadio標籤並從數據庫填充列表,然後我想使用選定的值來標識所選文檔的類型並將其傳遞給fileUploadListener,以便將正確的文檔類型附加到正在上傳的文件上。我如何通過選定的值?如何將選擇的值從selectOneRadio標記傳遞給PrimeFaces中的fileUpload標記

<p:selectOneRadio id="docType" value="#{fileUploadBean.docType}" layout="grid" columns="1"> 
    <f:selectItems var="document" value="#{fileUploadBean.docDescriptionList}" itemLabel="#{docType}" itemValue="#{docType}" /> 
</p:selectOneRadio> 

<p:fileUpload id="docFile" value="#{fileUploadBean.file}" mode="advanced" allowTypes="/(\.|\/)(pdf)$/" 
    fileUploadListener="#{fileUploadBean.uploadFile}" multiple="true" update="messages"> 
</p:fileUpload> 

<p:growl id="messages" showDetail="true" /> 
+0

爲什麼你需要將它傳遞給fileUpload TAG?你應該'只'將它發送給bean(例如通過使用ajax)... – Kukeltje

+0

@Kukeltje,當用戶選擇一個項目時,我嘗試使用將它傳遞給bean。當我以後上傳文件時,該值不成立。 – Yanty

+0

然後檢查你的豆的範圍 – Kukeltje

回答

0

你需要添加變量允許的類型,然後更新它時,單選按鈕變爲:

<p:selectOneRadio id="docType" 
        value="#{fileUploadBean.docType}" 
        layout="grid" 
        columns="1"> 
    <p:ajax listener="#{fileUploadBean.updateAllowTypes}" update="@form" /> 
    <f:selectItems var="document" 
        value="#{fileUpoadBean.docDescriptionList}" 
        itemLabel="#{docType}" 
        itemValue="#{docType}" /> 
</p:selectOneRadio> 

<p:fileUpload id="docFile" 
       value="#{fileUploadBean.file}" 
       mode="advanced" 
       allowTypes="#{fileUploadBean.allowTypes}" 
       fileUploadListener="#{fileUploadBean.uploadFile}" 
       multiple="true" 
       update="messages"> 
</p:fileUpload> 

而在的Java bean:

private String allowTypes; //getters and setters 
... 
public void updateAllowTypes(){ 
    allowTypes = ... //Specify allowed types 
} 
+0

謝謝你的幫助,但它並不像我希望的那樣工作。我沒有試圖改變allowTypes值,我仍然只想要pdf文件,但我的意思是,單選按鈕將列出文檔類型,如「證書」,「簡歷」,並根據選擇,上傳的文件將在「證書」或「簡歷」下提交。 – Yanty

相關問題