我有一个具有这些路线的角应用:
$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");
问题是,如果我使用url,则是:
http://localhost:8090/connect/{connectionToken here}
我总是在爪哇一侧无效。如果我使用的是:
http://localhost:8090/connect/?connectionToken={connectionToken here}
Angular不会碰到正确的路线,它进入otherwise
路线,但是在Java侧我可以通过request.getParameter
获得令牌。
我该如何处理?
尝试定义您的控制器方法:
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/connect/{connectionToken}")
public Response doStuff(@PathParam("connectionToken") String token){
System.out.println(token);
//stuff..
}
或,如果您使用的是弹簧:
@RequestMapping(value="/connect/{connectionToken}", method = RequestMethod.GET, produces="application/json")
public Response getOrderEquipment(@PathVariable("connectionToken") String token){
System.out.println(token);
//stuff..
}