Как получить доступ к возвращенным значениям из Spring Controller через java скрипт ajax вызов в jsp? - PullRequest
0 голосов
/ 16 апреля 2020

Я новичок в веб-разработке. Я пытаюсь разработать простое приложение, которое приводит обменный курс в ответ. Я могу получить ответ на другой странице JSP, используя ModelAndView. Но проблема в том, что мне нужно установить этот ответ на самой домашней странице, используя AJAX.

Ниже приведен код, который я пробовал.

Home. jsp

         <html>
         <head>
         <meta charset="ISO-8859-1">
         <meta name="viewport" content="width=device-width, initial-scale=1">
         <link rel="stylesheet" 
         href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
         <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
         <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
         <title>Insert title here</title>
         </head>
         <body>

         <form>
         <table align="center">
         <tr><td> <div class="form-group">
         <label for="sel1">From Currency:</label> </div> </td>
         <td>
         <div class="form-group">
         <select class="form-control" name="t1">
         <option>INR</option>
         <option>USD</option>
         <option>LKR</option>
         <option>AED</option>
         </select>
         </div></td><br></tr>
         <tr></tr>
         <tr><td> <div class="form-group">
         <label for="sel1">To Currency:</label> </div> </td>
         <td>
         <div class="form-group">
         <select class="form-control" name="t2">
         <option>AED</option>
         <option>LKR</option>
         <option>USD</option>
         <option>INR</option>
         </select>
         </div></td><br></tr>
         <tr><td><button class="btn btn-success" onclick="loadDoc()">Fetch</button></td></tr>
         </table>
         </form>

         <div id="demo"></div>
         <script>
         function loadDoc() {

         alert("inside function");
         var xhttp = new XMLHttpRequest();
         xhttp.onreadystatechange = function() {

               if (this.readyState == 4 && this.status == 200) {

                document.getElementById("demo").innerHTML=this.responseText;

                                                                }
                                               };
         xhttp.open("GET", "http://localhost:8080/DemoMVC/forex?t1=USD&t2=USD", true);
         xhttp.send();
         }
         </script>
         </body>
         </html> 

addcontroller. java

           @Controller
           public class addcontroller {


          @RequestMapping("/forex")

          public ModelAndView ForexFetcher(HttpServletRequest request,HttpServletResponse response) {
                 String from=request.getParameter("t1");
                 String to=request.getParameter("t2");
                 String uri="https://www.alphavantage.co/queryfunction=CURRENCY_EXCHANGE_RATE
                             &from_currency="+from+"&to_currency="+to+"&apikey=xyz";

                 ResponseParser rp=new ResponseParser();
                 String resp=rp.getForex(uri);



                 JSONObject job = new JSONObject(resp);
                 System.out.println("JSON Object"+job);
                 JSONObject data=job.getJSONObject("Realtime Currency Exchange Rate");
                 System.out.println("Data=="+data);

                 ModelAndView mv=new ModelAndView();
                 mv.setViewName("Home.jsp");
                 mv.addObject("From",data.get("1. From_Currency Code"));
                 mv.addObject("To",data.get("3. To_Currency Code"));
                 mv.addObject("Rate",data.get("5. Exchange Rate"));
                 mv.addObject("DateTime",data.get("6. Last Refreshed"));



                 return mv;

                 }

                 }

Было бы полезно, если бы я узнал, как установить ответ на самой домашней странице. заранее спасибо.

...