请帮助我解决我的问题! 我有引导文件输入,包含文件:
$MESOS_HOME/bin/mesos-slave.sh \
--no-systemd_enable_support \
--work_dir=/tmp \
--master=${externalip}:5050 \
--hostname=$slavehost \
--isolation="filesystem/linux,cgroups/devices,gpu/nvidia" \
--nvidia_gpu_devices=${gpu_devices} \
--resources="[{\"name\": \"gpus\",\"type\": \"SCALAR\",\"scalar\": {\"value\": ${gpu_cnt}}}]" \
--executor_environment_variables="{\"LD_LIBRARY_PATH\": \"${LD_LIBRARY_PATH}\", \"LIBPROCESS_SSL_ENABLED\": \"${LIBPROCESS_SSL_ENABLED}\", \"LIBPROCESS_SSL_KEY_FILE\": \"${LIBPROCESS_SSL_KEY_FILE}\", \"LIBPROCESS_SSL_CERT_FILE\": \"${LIBPROCESS_SSL_CERT_FILE}\"}"
我也有一个用于fileInput的宏:
<link href="/assets/css/fileinput/fileinput.css" rel="stylesheet" type="text/css">
<link href="/assets/css/fileinput/fileinput-rtl.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="/assets/js/fileinput/fileinput.js"></script>
<script type="text/javascript" src="/assets/js/plugins/fileinput/piexif.js"></script>
<script type="text/javascript" src="/assets/js/plugins/fileinput/sortable.js"></script>
<script type="text/javascript" src="/assets/js/plugins/fileinput/purify.js"></script>
这是我的ftl元素:
<#macro fileInputBind path required=false fileMask="">
<@spring.bind path/>
<div class="form-group">
<@label path required/>
<#assign replacedPath = path?replace(".", "-") />
<#assign fileInputId = "${replacedPath}" />
<div class="col-md-12">
<input id="${fileInputId}" name="${spring.status.expression}" type="file" class="form-control file-styled"
accept="${fileMask}">
</div>
</div>
</#macro>
然后在我的表单中使用变量来处理此字段:
<@form.fileInputBind "incidentRovdCreateForm.attachment"/>
但是,当执行@PostMapping时,这部分出现了错误:
private MultipartFile attachment;
错误: 无法将类型“ java.lang.String”的属性值转换为属性“附件”的必需类型“ org.springframework.web.multipart.MultipartFile”;嵌套异常是java.lang.IllegalStateException:无法将属性“附件”的类型“ java.lang.String”的值转换为所需的类型“ org.springframework.web.multipart.MultipartFile”:找不到匹配的编辑器或转换策略。 / p>
我可以遇到什么问题?
答案 0 :(得分:0)
我遇到了与前端相同的 HTML + JavaScript 问题。如果不需要 bean 的 file 属性,以下可能对您有所帮助:
// js
var formData = new FormData(document.getElementById("yourFormId"));
//TestBean.java
@Transient
private MultipartFile file;
此方法避免了“无法将字符串转换为 MultipartFile”错误。