Я новичок в веб-разработке. Я пытаюсь разработать простое приложение, которое приводит обменный курс в ответ. Я могу получить ответ на другой странице 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;
}
}
Было бы полезно, если бы я узнал, как установить ответ на самой домашней странице. заранее спасибо.