【问题标题】:Get request object, when JSP page is submitted using AJAX获取请求对象,当使用 AJAX 提交 JSP 页面时
【发布时间】:2014-03-29 09:30:30
【问题描述】:

我用 AJAX 提交 JSP 页面,

<script type="text/javascript">
    var form = $('#form1');
    form.submit(function () {

        $.ajax({
            type: form.attr('method'),
            url: form.attr('action'),
            data: form.serialize(),
            success: function (data) {
                var x = data;    
                $('#result').attr("value", x);    
            }
        });

        return false;
    });
</script>

在我的 Servlet 中,

request.setAttribut("test","asd");

已使用。

现在我想在我的 JSP 页面中使用 request.getAttribute("test"); 但我找不到。

【问题讨论】:

  • 你想把一个变量从servlet传回jsp吗?
  • 是的,这只是一个例子,我将 i 变量值从 jsp 传递到 servlet 并处理该变量并将 HaseMap 从 servlet 返回到 JSP
  • 所以你的意思是你没有成功接收数据?我说的对吗?
  • 我以字符串形式接收数据,我需要从 ajax 获取地图对象
  • darian 引用的链接应该对您有所帮助..您尝试了吗?

标签: ajax jsp servlets


【解决方案1】:

您在此处发送表单的序列化内容:

data: form.serialize()

确保在您的表单中有一个带有name="test"&lt;input&gt; 字段。然后在您的 servlet 中,您可以使用 getParameter 方法检索该值:

public class MyServlet extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

        String test = request.getParameter("test");
        ....
    }
}

【讨论】:

  • 在 servlet 我也写 request.setAttribute("test1","asd");我需要jsp中的请求值,但我无法在jsp中获取servlet设置的请求属性
  • 因为我的要求是在使用 ajax 提交页面时将 HaseMap 对象从 servlet 发送到 jsp
  • 因为这是对 servlet 的 AJAX 调用,所以页面不会重新加载。因此,除非您在 success 回调中手动反映它们,否则您可能在 servlet 中所做的任何更改都不会反映到 UI。理想情况下,在使用 AJAX 时,您的服务器端操作应该只返回一些可以在 DOM 或 JSON 中替换的部分 HTML。
  • 好的,这意味着我无法从 jsp 文件中的 servlet 获取地图对象
  • 传递给success 函数的data 参数将包含servlet 执行的结果。如果您正在呈现一些 JSP,那么它将包含该 JSP 的标记。您应该修改您的 servlet 以便它返回 JSON 结果。然后您将能够将其分配给相应输入字段的值。这是一个示例:stackoverflow.com/a/2012031/29407
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-01
  • 2016-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多