2017-12-22 19 views
0

私はこれらのルートとの角度のアプリを持っている: 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} 

I Java側では常にnullになります。私はのようなURLを使用する場合と:

正しいルートに当たらない角度
http://localhost:8090/connect/?connectionToken={connectionToken here} 

、それはotherwiseルートになりますが、Java側に私はrequest.getParameter経由でトークンを取得することができます。

どうすればこの問題に対処できますか?

+0

あなたはあなたのソリューションであるが、あなたはHTTPヘッダーを使用することができますこの種の情報(接続トークン)を渡すには?どういうわけか、それはURLに属するもののようには見えません。 – fasfsfgs

答えて

0

は、このようなあなたのコントローラメソッドを定義してください:

@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.. 
} 
+0

問題は、私はそのメソッドのHttpServletRequestへのアクセス権を持っていることです。 – gog

+0

Javaメソッドを見ることができるように自分の投稿を編集しました。 – gog

+0

あなたはFormParamからconnectionTokenを取得していますが、トークンはPathParameterです。 試してみてください:[AT] FormParamの代わりに[AT] PathParam – Innet

関連する問題