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

时间:2024-03-02 18:35:58

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

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

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

 1     function decrypt(value){
 2           $.ajax({
 3                 type: "post",
 4                 url: "",
 5                 data: {"value":value},
 6                 dataType:"json",
 7                 async : false,//必须使用同步方法,或者success里面重新封装方法
 8                 success: function(msg){
 9                     value=msg.msg;
10                 }
11             });
12 
13           return value;
14     }

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

后端代码:

 1 @RequestMapping(params = "decrypt",method = RequestMethod.POST)
 2     @ResponseBody
 3     public AjaxJson decrypt(HttpServletRequest request) {
 4         String value = request.getParameter("value");
 5         AjaxJson j = new AjaxJson();
 6         String msg="";
 7         try{
 8             //对value进行业务逻辑处理
         msg = value;
9 }catch(Exception e){ 10 e.printStackTrace(); 11 } 12 13 j.setMsg(msg); 14 return j; 15 }

搞定。