我有一个带有这些路线的角度应用程序:
$routeProvider
// Home screen
.when('/', {
title : 'APP.NAME',
bodyClassName : 'home',
templateUrl : 'app/custom/templates/customTemplate.html',
controller : 'customTemplateController',
resolve : { unauthorizeRequest: unauthorizeRequest }
})
.when('/connect/:connectionToken', {
bodyClassName : 'client',
templateUrl : 'app/client/templates/client.html',
controller : 'clientController',
resolve : { updateToken: updateToken}
})
.otherwise({
resolve : { unauthorizeRequest: unauthorizeRequest }
});
并在java方面:
@POST
public APIAuthenticationResult createToken(
@FormParam("connectionToken") String token,
@Context HttpServletRequest consumedRequest,
MultivaluedMap<String, String> parameters)
HttpServletRequest request = new APIRequest(consumedRequest, parameters);
String token = request.getParameter("connectionToken");
问题是如果我使用的网址如下:
http://localhost:8090/connect/{connectionToken here}
我总是在Java端获得null。如果我使用的网址如下:
http://localhost:8090/connect/?connectionToken={connectionToken here}
angular没有达到正确的路由,它会转到otherwise
路由,但在Java端我可以通过request.getParameter
获取令牌。
我该如何处理?
答案 0 :(得分:0)
尝试像这样定义控制器方法:
@RequestMapping(value="/connect/{connectionToken}", method = RequestMethod.GET, produces="application/json")
public Response getOrderEquipment(@PathVariable("connectionToken") String token){
System.out.println(token);
//stuff..
}
或者,如果你使用的是Spring:
{{1}}