【发布时间】:2018-09-27 13:01:03
【问题描述】:
我正在将数据从 controller.js 传递到 service.js 到 SpringController.java
但是当我将 $scope.credentials.uname 数据传递给 Java 控制器时发生了奇怪的事情。
传递的数据用双引号括起来。当我在 Java 中打印值时 它被打印为“USER”而不是 USER。
由于这个原因,我无法将用户名保存在数据库中。
$scope.submitUsername = function()
{
$log.info("username "+$scope.credentials.uname);
这里的日志正在正确打印 chrome 控制台
用户名 SYS_USER --> 不带双引号
loginService.fetchUserType(angular.copy($scope.credentials.uname)).then(function(data)
{
if (data.loginType == 'NotValidUsername')
{
$log.info("Failure")
toaster.pop('information', "Warning", 'Enter Valid UserName');
}
else
{
$log.info("Success")
if (data.loginType == 'database')
{
$scope.isExternalUser = true;
$scope.showSubmitButton = false;
}
else
{
$scope.isExternalUser = false;
$scope.showSubmitButton = false;
}
}
})
};
service.js
fetchUserType : function(userName)
{
var promise = $http({
url : "checkUserType.do",
method : "POST",
data : JSON.stringify(userName)
}).success(function(data, status, header, config, statusText)
{
}).error(function(data, status, header, config, statusText)
{
if(!status === 901)
toaster.pop('error', status, statusText);
}).then(function(response)
{
return response.data;
})
return promise;
}
Java 控制器方法
@RequestMapping(value = "/checkUserType.do", method = { RequestMethod.GET, RequestMethod.POST })
@ResponseBody
public Object checkUserType(@RequestBody String username,HttpServletRequest request)
{
log.info(" Inside checkUserType "+username);
User user = new User();
user.setUserName(username);
String userType = loginService.checkUserType(user.getUserName());
user.setLoginType(userType);
return user;
}
控制台的输出是
在 checkUserType "SYS_USER" 里面。
我应该如何传递数据以避免将这些“”(双引号)传递给 Java 控制器
【问题讨论】:
标签: java angularjs spring spring-mvc angularjs-scope