如何在java后端获取angularjs参数?

时间:2017-12-22 12:55:45

标签: 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");

问题是如果我使用的网址如下:

 http://localhost:8090/connect/{connectionToken here}

我总是在Java端获得null。如果我使用的网址如下:

 http://localhost:8090/connect/?connectionToken={connectionToken here}

angular没有达到正确的路由,它会转到otherwise路由,但在Java端我可以通过request.getParameter获取令牌。

我该如何处理?

1 个答案:

答案 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}}