js调用java代码返回解决方案

版权声明:本文为楼主原创文章,未经楼主允许不得转载,如要转载请注明来源。

  今天封装一个加密标签,遇到一个问题,我需要对页面上的数据调用java后台代码进行解密,而标签里只能通过js获取到数据,所以就遇到了js掉用java代码进行结果返回问题。

试了好多方法,现实证明js里是调不通java代码的。(它们的执行机制和时机是不同的,具体可以自行百度)我的解决办法就是通过ajax解决。首先在js里接收需要处理的数据,然后调用ajax,通过ajax后台对数据进行处理返回,然后在将结果供前台使用,搞定。前端js如下

     function decrypt(value){
$.ajax({
type: "post",
url: "",
data: {"value":value},
dataType:"json",
async : false,//必须使用同步方法,或者success里面重新封装方法
success: function(msg){
value=msg.msg;
}
}); return value;
}

注意这里async必须设置成false,不然value值是不会改变的。

后端代码:

 @RequestMapping(params = "decrypt",method = RequestMethod.POST)
@ResponseBody
public AjaxJson decrypt(HttpServletRequest request) {
String value = request.getParameter("value");
AjaxJson j = new AjaxJson();
String msg="";
try{
//对value进行业务逻辑处理
         msg = value;
}catch(Exception e){
e.printStackTrace();
} j.setMsg(msg);
return j;
}

搞定。

上一篇:2.nginx_rewrite模块


下一篇:IIS挂起网站配置文件地址