0

我对编程很陌生,所以请多多包涵。

我正在尝试使用 javascript 从表单(在 JSP 中)获取值并对 servlet 进行发布请求。我的表单有 6 个值,我使用 javascript 获取值

var value 1 =    document.getElementByID(" value of a element in the form).value
var value 2 =    document.getElementByID(" value of a element in the form).value
etc

我的问题是我使用 POST 请求使用 javascript Ajax 调用。如何将所有这些不同的值组合成一个元素,然后我可以使用 servlet 中的 POJO 的 setter 方法读取并分配给 POJO。我无法使用 JSON,因为我的项目无法使用 Jersey 等外部库。对此的任何指针将不胜感激。

4

1 回答 1

0

有更优雅的方法可以做到这一点,但这是最基本的。您需要将您的 javascript 变量组合成一个标准的帖子正文。

var postData = 'field1=' + value1;
postData += '&field2=' + value2;
postData += '&field3=' + value3;
/*  You're concatenating the field names with equals signs 
 *  and the corresponding values, with each key-value pair separated by an ampersand.
 */

如果您使用的是原始 XMLHttpRequest 工具,则此变量将是该send方法的参数。如果使用 jQuery,这将是您的data元素。

在您的 servlet 中,您从容器提供的 HttpServletRequest 对象中获取值。

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

    MyObject pojo = new MyObject();
    pojo.setField1(request.getParameter("field1"));
    pojo.setField2(request.getParameter("field2"));
    pojo.setField3(request.getParameter("field3"));
    /*  Now your object contains the data from the ajax post.
     *  This assumes that all the fields of your Java class are Strings.
     *  If they aren't, you'll need to convert what you pass to the setter.
     */ 
}
于 2013-11-09T23:18:24.673 回答