如何在Java后端获得AngularJS参数



我有一个具有这些路线的角应用:

$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..
}

最新更新