2017-11-14 10 views
0

私のウェブサイトには連絡フォームがあり、私にメールを送信しようとしています。電子メールの送信者クラスは正常に動作します。問題は、常にnullを返すフォームからパラメータを取得しようとするときです。私は別の簡単なフォームでテストしましたが、コードは機能しましたが、自分のフォームでは機能しません。これはjspファイルからのフォームです。送信ボタンのrequest.getParameter()は、常にnullを返します。

<!-- Contact Form --> 

<div class="col-md-6"> 
    <form id="contact" class="contact-form row" role="form" method="post"> 
    <div class="col-md-12 text-center"> 
     <h5 class="successContent"> 
     <i class="fa fa-check left" style="color: #5cb45d;"></i>Your message has been sent successfully. 
     </h5> 
     <h5 class="errorContent" style="color: #e1534f;"> 
     <i class="fa fa-exclamation-circle left"></i>There was a problem validating the form please check! 
     </h5> 
    </div> 

    <div class="col-md-12"> 
     <div class="form-field-wrapper"> 
     <input class="input-lg form-full" id="form-name" type="text" name="name" placeholder="Your Name" required /> 
     </div> 


    </div> 

    <div class="col-md-12"> 
     <div class="form-field-wrapper"> 
     <input class="input-lg form-full" id="form-email" type="email" name="email" placeholder="Email" required /> 
     </div> 
    </div> 

    <div class="col-md-12"> 
     <div class="form-field-wrapper"> 
     <input class="input-lg form-full" id="form-subject" type="text" name="subject" placeholder="Subject" /> 
     </div> 
    </div> 

    <div class="col-md-12"> 
     <div class="form-field-wrapper"> 
     <textarea class="home-contact-txt-msg input-lg form-full" id="form-message" rows="7" name="message" placeholder="Your Message" required></textarea> 
     </div> 

    </div> 

    <div class="col-md-12"> 
     <input class="btn-contact-submit btn btn-lg btn-black" type="submit" name="submit" value="Send Message"> 
    </div> 
    </form> 
</div> 
</div> 
<!-- Contact Form End --> 

これはパラメータを取得するために必要な部分です。

<div class="col-md-12"> 
    <input class="btn-contact-submit btn btn-lg btn-black" type="submit" name="submit" value="Send Message"> 
</div> 

そして、これはコードを送信した電子メールです。フォームは、ボタンがクリックされた提出したときに、私はこの部分(request.getParameter("submit") != null)が本当作ることができますどのように

<% 
    String status = null; 
    String parameter = null; 

    //If request is submit, sending email. 
    if (request.getParameter("submit") != null) { 

     EmailSender email = new EmailSender(); 
     email.setMailServerProperties(); 

     //Email subject. 
     String emailSubject = "Message from asdasd.com"; 
     //Email body. 
     String emailBody = ""; 

     //If name is not empty, adding name to email body. 
     if (request.getParameter("name") != null) { 
      emailBody = "Sender Name: " + request.getParameter("name") + "<br>"; 
     } 

     //If email is not empty, adding email to email body. 
     if (request.getParameter("email") != null) { 
      emailBody = emailBody + "Sender Email: " + request.getParameter("email") + "<br>"; 
     } 

     //If subject is not empty, adding subject to email body. 
     if (request.getParameter("subject") != null) { 
      emailBody = emailBody + "Subject: " + request.getParameter("subject") + "<br>"; 
     } 

     //If message is not empty, adding message to email body. 
     if (request.getParameter("message") != null) { 
      emailBody = emailBody + "Message: " + request.getParameter("message") + "<br>"; 
     } 

     //Creating email object with emailSubject and emailBody. 
     email.createEmailMessage(emailSubject, emailBody); 


     /* 
     try { 
      //Sending email. 
      email.sendEmail();   
     } catch (MessagingException me) { 
      out.print(me.getMessage());   
     } 
     */ 
     status = "Email sent."; 
     parameter = request.getParameter("submit"); 
     out.print(status + parameter); 
    } else { 
     status = "Email not sent."; 
     parameter = request.getParameter("submit");    
     out.print(status + parameter); 
    } 
%> 

編集:私は何か気付いた。このページでは、送信ボタンだけでなく、どのフィールドのパラメータも取得できません。

Edit2:多くの場合、作業コードが機能しなくなりました。問題はApache Tomcatに関連する可能性がありますか?サーバーの問題がなければ、これを一貫してテストする方法はありますか?

+0

1.フォームタグにアクションを追加します。2. submit =ボタンをname = "submit"から別のものに変更します。たとえば、name = "Submit"に変更し、その変更を反映するようにJSPを変更します。あなたがフォーム送信イベントをシャドウするので、名前= "submit"をスクリプトに書くことは決してしないでください。 – mplungjan

+0

@mplungjan両方ともまだ動作していないことを試してみてください。私は問題がhtmlに関連していると思います。なぜなら、私が単純なフォームでこれを行うと、このコードはうまく動作するからです。 – gunessun

+0

あなたは「電子メール送信者クラスは正常に動作しますが、まだコード関連のEmailSenderまたはその周囲のtry-catchブロックをすべて削除し、作業の有無を再度確認してください。また、ServletクラスにJavaコードを入れるJSPサーブレットでMVCを使用することもできます。 –

答えて

-1

JSPファイルにライブラリを追加していますか? like <%@ page import = "java.io.*,java.util.*" %>

+0

はい、Javaコードは問題ありません。奇妙なことに、divでラップしないで新しいフォームを作ったとき、それはうまくいった。 – gunessun

関連する問題