0
I have a selectOneMenu that contains a list of document types, which I associate to the documents being attached in a p:fileUpload, however, the value selected by selectOneMenu comes null
View of File Attachment
<p:dialog id="dialogAnexos" minHeight="70" header="Anexar Arquivos"
widgetVar="dialogAnexos">
<h:outputLabel value="Tipo de Documento *:" style="font-weight: bold" />
<h:selectOneMenu style="height: 20px; width: 200px; background-color: #fff;"
value="#{registroOnlineEmpresaController.tipoDocumentoSelecionado}"
required="true" requiredMessage="Tipo de Documento: Selecione uma Opção...">
<f:selectItem noSelectionOption="true" itemLabel="Selecione..." />
<f:selectItems value="#{registroOnlineEmpresaController.obterTiposDocumentos()}" />
</h:selectOneMenu>
<br />
<br />
<h:outputLabel value="Anexo de Arquivos *:" style="font-weight: bold" />
<br />
<br />
<p:fileUpload id="uploadAnexo"
fileUploadListener="#{registroOnlineEmpresaController.handleFileUpload}"
allowTypes="/(\.|\/)(gif|png|jpe?g|pdf)$/"
sizeLimit="10000000"
label="Escolher..."
multiple="true"
auto="true"
showButtons="false"
mode="advanced"
uploadLabel="Enviar Arquivos"
process="@this"
dragDropSupport="true"
required="true"
requiredMessage="Anexe pelo menos um arquivo"/>
<p:commandButton value="Enviar" onclick="dialogAnexos.hide();" immediate="true"/>
</p:dialog>
Method filling in the Document Types List
public Map<String, Object> obterTiposDocumentos() {
Map<String, Object> tiposDocumentos = new HashMap();
tiposDocumentos.put("CNPJ", "CNPJ");
tiposDocumentos.put("Contrato", "Contrato");
return tiposDocumentos;
}
Handlefileupload, where the document type is associated with the attached file
public void handleFileUpload(FileUploadEvent event) throws IOException {
UploadedFile item = event.getFile();
Calendar c = Calendar.getInstance();
int mes = c.get(Calendar.MONTH);
mes++;
String complementoDir = c.get(Calendar.YEAR) + "/" + mes + "/" + c.get(Calendar.DAY_OF_MONTH) + "/";
String sDiretorio = SistemaConstante.CAMINHO_ARQUIVOS_REGISTRO_ON_LINE_EMPRESA + complementoDir;
String sCaminho = SistemaConstante.DIRETORIO_ARQUIVOS_REGISTRO_ON_LINE_EMPRESA + complementoDir;
String nomeArquivo = item.getFileName().replace("\\", File.separator).replaceAll(" ", "_");
File diretorio = new File(sDiretorio);
boolean diretorioCriado = true;
if (!diretorio.exists()) {
if (!diretorio.mkdir()) {
if (!diretorio.mkdirs()) {
FacesUtils.mensFatal("Falha na criação do diretório!");
diretorioCriado = false;
}
}
}
if(diretorioCriado) {
String aux = StringUtil.removerAcentos(nomeArquivo);
String caminhoArquivo = sDiretorio + aux;
String caminhoVerArquivo = sCaminho + aux;
File arquivo = new File(caminhoArquivo);
OutputStream out = new FileOutputStream(arquivo);
out.write(item.getContents());
out.close();
arquivoRegistroOnlineEmpresa = new ArquivoRegistroOnlineEmpresa();
arquivoRegistroOnlineEmpresa.setCaminhoArquivo(caminhoArquivo);
arquivoRegistroOnlineEmpresa.setCaminhoVerArquivo(caminhoVerArquivo);
arquivoRegistroOnlineEmpresa.setTipoDocumento(tipoDocumentoSelecionado);
arquivoRegistroOnlineEmpresaDao.salvar(arquivoRegistroOnlineEmpresa);
arquivoRegistroOnlineEmpresa.setNomeArquivo(aux);
arquivosRegistroOnlineEmpresa.add(arquivoRegistroOnlineEmpresa);
}
}