如何在js和java之间编码解码?

时间:2014-11-29 08:15:52

标签: java javascript angularjs restangular

我正在使用java脚本中的项目作为前端,使用java作为后端,我的问题是我想使用restangular调用传递一些字符串到我的后端资源。如果传递参数在字符串之间有空格,那么在到达后端资源端之前我得到 500(服务器错误)

让我们举个例子:

在Java Script:RESTangular call

var myRestCall= Restangular.all('myRoot/myMethod/'+myLocalPath+'/'+folderName);
restPSTFolders.getList().then(function(listPSTFolders){
//my stuff
});

在Java资源:

  @ApiOperation(value = "My Method",
                notes = "Returns My Method list",
                responseContainer = "List",
                response = List.class)
   @Path("/myMethod/{myLocalPath}/{folderName}")
   @GET
   @Transactional
   @Timed
   public List myMethod(@PathParam("myLocalPath") String myLocalPath, @PathParam("folderName") String sFolderName) {
       //my stuff
    }

在我的示例myLocalPath参数中,字符串中可以包含空格和特殊字符,因为它可以是任意字符:

  • C:\ MY DRIVE \ My Path One \ My Path
  • D:\我最喜欢的

要从RESTangular调用传递给后端类,我需要用一些字符替换所有空格,它对我有用,但我不认为这是用任何字符编码特殊字符和空格的好方法,因为替换字符也可以是现有路径的一部分,然后在后端再次替换字符,可能会改变路径。

编辑:如果我将参数作为json对象传递:

var parameterJsonPath = {};
parameterJsonPath={"myLocalPath": pathValue};

var myRestCall= Restangular.all('myRoot/myMethod/'+parameterJsonPath+'/'+folderName);

我没有任何意义: ../ myRoot / myMethod /%5Bobject%20Object%5D无法加载资源:服务器响应状态为500(服务器错误) < / p>

将参数JsonPath设为JSON.stringify(parameterJsonPath);会将其作为对我无用的字符串传递。

总而言之,有没有什么好方法可以在js中对字符串的特殊字符进行编码,所以在后端,我可以使用编码时使用的相同键来解码该字符串?

0 个答案:

没有答案