私のウェブサイトには連絡フォームがあり、私にメールを送信しようとしています。電子メールの送信者クラスは正常に動作します。問題は、常に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に関連する可能性がありますか?サーバーの問題がなければ、これを一貫してテストする方法はありますか?
1.フォームタグにアクションを追加します。2. submit =ボタンをname = "submit"から別のものに変更します。たとえば、name = "Submit"に変更し、その変更を反映するようにJSPを変更します。あなたがフォーム送信イベントをシャドウするので、名前= "submit"をスクリプトに書くことは決してしないでください。 – mplungjan
@mplungjan両方ともまだ動作していないことを試してみてください。私は問題がhtmlに関連していると思います。なぜなら、私が単純なフォームでこれを行うと、このコードはうまく動作するからです。 – gunessun
あなたは「電子メール送信者クラスは正常に動作しますが、まだコード関連のEmailSenderまたはその周囲のtry-catchブロックをすべて削除し、作業の有無を再度確認してください。また、ServletクラスにJavaコードを入れるJSPサーブレットでMVCを使用することもできます。 –