Javascript 要求的零件不存在-弹簧
我正在尝试将附加的文件信息从agularjs控制器传递到spring控制器。我在将信息从angularjs传递到spring控制器时遇到了问题,它在浏览器控制台上抛出了错误,而没有调用spring控制器 错误消息:Javascript 要求的零件不存在-弹簧,javascript,angularjs,spring,ng-file-upload,Javascript,Angularjs,Spring,Ng File Upload,我正在尝试将附加的文件信息从agularjs控制器传递到spring控制器。我在将信息从angularjs传递到spring控制器时遇到了问题,它在浏览器控制台上抛出了错误,而没有调用spring控制器 错误消息: error : "Required request part 'ad' is not present" status : 500 下面是我在应用程序中使用的示例代码,用于从angularjs向spring控制器发送附加文件和信息 html: MyService.js _repSe
error
:
"Required request part 'ad' is not present"
status
:
500
下面是我在应用程序中使用的示例代码,用于从angularjs向spring控制器发送附加文件和信息
html:
MyService.js
_repServiceFactory.sendWithAttachments = function (formData) {
var myUrl = appURL + '/sendData/sendEmailsTest.form';
$http({
method: "post",
url: myUrl,
//headers: {'Content-Type': 'application/x-www-form-urlencoded'},
headers: {'Content-Type': undefined},
data: formData
/*transformRequest: function (data, headersGetterFunction) {
return data;
}*/
}).success(function (result) {
console.log(result);
});
return deferred.promise;
}
Springcontroller:
@Controller
@RequestMapping("/sendData")
public class DataController {
@RequestMapping(value = "/sendEmailsTest", method = RequestMethod.POST,consumes = {"multipart/form-data"})
public
@ResponseBody
String sendEmailsTest(@RequestPart("file") MultipartFile file) throws Exception {
System.out.println("request body form data " + file);
//logic to get the files and the information and do accordingly..
}
}
spring-servlet.xml:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10000000"/>
</bean>
/WEB-INF/views/
.jsp
任何投入都会有帮助 您将从服务器获得
500
响应代码。
您需要在spring控制器方法中再添加一个RequestPart
,即将方法定义更新为以下内容
String sendEmailsTest(@RequestPart("file") MultipartFile file, @RequestPart("ad") String jsonAd) throws Exception {
}
您还可以将
ad
绑定到类
而不是字符串
。我也做了类似的事情。我按照您的建议尝试了,但现在显示了所需的错误请求部分“文件”不存在”状态:500..我想我需要从MyService.js传递两个参数,在MyService.js中,我只传递一个参数作为数据的一部分(即数据:formData)。这是问题的原因。任何输入都会有帮助。@gsswainga您可以调试saveForm方法以查看文件是否有某些值。您的html表单似乎没有绑定文件字段。否则,您也可以在“网络”选项卡中检查请求负载。获取文件输入字段的句柄并将.files[0]附加到formData。
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10000000"/>
</bean>
String sendEmailsTest(@RequestPart("file") MultipartFile file, @RequestPart("ad") String jsonAd) throws Exception {
}