繁体   English   中英

如何检查表单是否以Java提交

[英]How to check if form was submitted in Java

我在jsp中有一个表格:

<form id="emailForm" data-role="form">
      <input type="text" class="form-control" id="name" name="name" placeholder="Enter full name..">
   <input type="submit" id="emailSubmit" name="emailSubmit" class="btn btn-default" value="submit">
</form>

我使用AJAX将表单发送给控制器:

$("#emailSubmit").click(function(e){
        e.preventDefault(); //STOP default action
    var postData    = $("#emailForm").serializeArray();
        $.ajax(
            {
                type: "POST",
                url : "HomeController",
                data : postData,
                success: function(data) 
                {
                    $("#emailResult").html("<p>Thank your for submitting</p>);

                },
                error: function(jqXHR, textStatus, errorThrown) 
                {
                    $("#emailResult").html("<p>ss"+errorThrown+textStatus+jqXHR+"</p>");
                }
            });
});

我在这里检查是否已在Controller中提交:

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

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

    if(emailSubmit != null){
        // continue
    }}

有人可以告诉我为什么检查表单是否在控制器中提交时为null吗?

对于表单,标准方法是捕获submit事件而不是按钮的click事件:

$("#emailForm").submit(function(e){
    e.preventDefault();
    var postData = $(this).serializeArray(); // or: $(this).serialize();
    $.ajax({
        type: "POST",
        url : "HomeController",
        data : postData,
        success: function(data) 
        {
            $("#emailResult").html("<p>Thank your for submitting</p>);

        },
        error: function(jqXHR, textStatus, errorThrown) 
        {
            $("#emailResult").html("<p>ss"+errorThrown+textStatus+jqXHR+"</p>");
        }
    });
});

我尝试了几种方法来检查“提交”按钮是否为null并不能解决该问题。 现在,我以如下形式设置了一个隐藏的输入字段:

<input type="hidden" name="form" value="contactForm">

在控制器中,我检查以下形式:

String form     = request.getParameter("form");
    if(form.equals("contactForm")){
        // continue
    }

这样做使我知道哪个表格已过帐到控制器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM