gpt4 book ai didi

jquery - 在 jQuery 和 Servlet 之间传递数据

转载 作者:搜寻专家 更新时间:2023-10-31 22:49:53 26 4
gpt4 key购买 nike

我有一个 HTML 表单:

<head>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>
<script type="text/javascript">

$(document).ready(function() {

$('#convert').click(function(){

//pairno tis times ap tin forma
var amount = $('#amount').val();
var from = $('#from').val();
var to = $('#to').val();

//kano ta dedomena ena koino string
var dataString = "amount=" + amount + "&from=" + from + "&to=" + to;

$.ajax({
type: "POST",
url: "CurrencyConverter",
success: function(data){
//pairno ta dedomena
$('#results').show();

//vazo ta dedomena sto results div tag.
$('#results').html(data);
}
});
});

$('#swap').click(function() {
 
s1=$('#to').val();  
  s0=$('#from').val();  
  $('#to').val(s0);  
  $('#from').val(s1);
});
});

</script>


</head>
<body>
<div class="data">
<label for="from">Μετάτρεψε:</label>
<input type="text" name="amount" id="amount" value="1" />
</div>

<div class="data">
<label for="fromCurrency">από:</label>
<select name="from" id="from">
<option selected="" value="EUR">Euro - EUR</option>
<option value="USD">United States Dollars - USD</option>
<option value="GBP">United Kingdom Pounds - GBP</option>
<option value="CAD">Canada Dollars - CAD</option>
</select>
</div>

<div class="data">
<label for="to">σε:</label>
<select name="to" id="to">
<option value="USD">United States Dollars - USD</option>
<option value="GBP">United Kingdom Pounds - GBP</option>
<option value="CAD">Canada Dollars - CAD</option>
<option value="AUD">Australia Dollars - AUD</option>
<option value="JPY">Japan Yen - JPY</option>
</select>
</div>
<div class="data">
<input type="submit" value="Μετατροπή">
<input type="submit" name="swap" id="swap" value="αντάλλαξέ τα!">
</div>
</div>

<div id="results"></div>
</body>
</html>

我想使用顶部的脚本从该表单中提取数据并将它们发送到我的 servlet。

这是我的 servlet 代码:

package com.example.web;
import com.example.model.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.lang.*;
import java.util.*;

public class CurrencySelect extends HttpServlet{

public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException, ServletException{

//response.setContentType("text/html;charset=UTF-8");

String from = request.getParameter("from");

String to = request.getParameter("to");

String amount = request.getParameter("amount");

CurrencyGenerator curr = new CurrencyGenerator();

String res = curr.GetCurrency(from,to,amount);

out.println(res);

}

}

这是我的 web.xml 文件:

    <?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
Version="2.4">
<servlet>
<servlet-name>CurrencyConverter</servlet-name>
<servlet-class>com.example.web.CurrencySelect</servlet-class>
</servlet>
<servlet>
<servlet-name>CodeReturn</servlet-name>
<servlet-class>com.example.web.CodeReturn</servlet-class>
</servlet>
<servlet>
<servlet-name>Redirect</servlet-name>
<servlet-class>com.example.web.Redirect</servlet-class>
</servlet>
<servlet>
<servlet-name>ListenerTester</servlet-name>
<servlet-class>com.example.web.ListenerTester</servlet-class>
</servlet>


<servlet-mapping>
<servlet-name>CurrencyConverter</servlet-name>
<url-pattern>/CurrencyConverter.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>CodeReturn</servlet-name>
<url-pattern>/CodeReturn.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Redirect</servlet-name>
<url-pattern>/Redirect.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ListenerTester</servlet-name>
<url-pattern>/ListenTest.do</url-pattern>
</servlet-mapping>

<context-param>
<param-name>report</param-name>
<param-value>report.html</param-value>
</context-param>

<listener>
<listener-class>com.example.model.MyServletContextListener</listener-class>
</listener>

</web-app>

我想将结果打印在我的 html 表单页面中的一个 div 中,我最终将其称为结果。我用 php 制作了相同的脚本,一切正常,但使用 servlet。我可以在新页面中获取结果,但无法将它们放入同一个 HTML 页面中。我该如何解决?

最佳答案

这里,

$.ajax({
type: "POST",
url: "CurrencyConverter",
success: function(data) {
$('#results').show();
$('#results').html(data);
}
});

你有两个问题:

  1. 您的 servlet 映射到 /CurrencyConverter.do , 但您正试图在 /CurrencyConverter 上调用它.您需要修复 URL。

  2. 您没有传递查询字符串 dataString根本。您需要将其作为 data 传递选项。

所以,应该这样做:

$.ajax({
type: "POST",
url: "CurrencyConverter.do",
data: dataString,
success: function(data) {
$('#results').show();
$('#results').html(data);
}
});

请注意,虽然您自己拼凑查询字符串在大多数情况下可能有效,但只要输入值包含特殊字符,它就会失败。您想像 Akhil 的回答中所示那样传递一个 JS 对象。但更好的是只使用 <form>jQuery.serialize() .另见 Simple calculator with JSP/Servlet and Ajax举个例子。

关于jquery - 在 jQuery 和 Servlet 之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8136495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com