如何将选择的值从selectOneRadio标记传递给PrimeFaces中的fileUpload标记
问题描述:
我正在使用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" />
答
你需要添加变量允许的类型,然后更新它时,单选按钮变为:
<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
为什么你需要将它传递给fileUpload TAG?你应该'只'将它发送给bean(例如通过使用ajax)... – Kukeltje
@Kukeltje,当用户选择一个项目时,我尝试使用
将它传递给bean。当我以后上传文件时,该值不成立。 – Yanty
然后检查你的豆的范围 – Kukeltje