【发布时间】:2016-01-11 19:47:01
【问题描述】:
我使用 ngFileUpload 指令向客户端发送数据:
$scope.upload = function (dataUrl, formValid) {
if (formValid && formValid === true) {
console.log($scope.user);
Upload.upload({
url: 'http://localhost:8080/user/',
data: $scope.setPhotoAndReturnUser(Upload.dataUrltoBlob(dataUrl))
.......
$scope.setPhotoAndReturnUser = function (photo) {
$scope.user.photo.image = photo;
return $scope.user;
};
User 对象包含附加的用户信息用户名、电子邮件等。 这是请求的样子:
@RestController
@RequestMapping("/user")
public class UserRestController {
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity newUser(HttpServletRequest request) {
MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;
UserDTO user = new UserDTO(mRequest);
if (service.validate(user)) {
registrationService.register(user, request);
return new ResponseEntity(HttpStatus.NO_CONTENT);
}
return new ResponseEntity(HttpStatus.BAD_REQUEST);
}
我的域转移对象构造函数:
public UserDTO(MultipartHttpServletRequest request) {
this.userEmail = request.getParameter("userEmail");
this.userName = request.getParameter("userName");
this.userPass = request.getParameter("userPass");
这是我得到的例外:
引起:java.lang.NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonProperty$Access
我的多部分解析器配置:
@Bean
MultipartResolver multipartResolver() {
CommonsMultipartResolver resolver = new CommonsMultipartResolver();
resolver.setMaxUploadSize(1000000);
return resolver;
}
我使用: 杰克逊核心 2.4.6 杰克逊数据绑定:2.6.4
但我无法完全理解发生了什么,我的方法参数中没有任何域对象,并且根据开发人员工具,请求被编码为多部分/表单数据。我是否应该尝试使用 spring 匿名身份验证,并将注册过程分成两个不同的请求?
【问题讨论】:
-
你能发布你的 UserDTO 课程吗
标签: java angularjs spring spring-mvc