$ .postメソッドを使用してhtmlファイルからフォームデータを送信しようとしています。しかし、サーバー側では、サーブレットがnullになっています。フィールドは空でNULLではありません。誰が私に問題点を教えてもらえますか?ありがとう。ところで、ここには1つのフィールドしか表示されていませんが、実際はフォームに複数のフィールドがあります。ここに私のコードは次のとおりです。サーブレットがフロントエンドからデータを取得していない
HTML
<form id="reservationsForm" name="reservationsForm" method="post" action="Reservations"
class="well form-horizontal" align="left" style="width:865px;border:2px solid #000000;margin:auto;">
<br>
<div >
<div align="left" class="form-group">
<label class="col-md-2 control-label" style="font-family:sans-serif;color:black"><B>Pickup Date:</B></label>
<div class="col-md-4 inputGroupContainer">
<div class="input-group">
<input placeholder="Please select a date" class="form-control" type="text" id="datepicker" style="width:
238px;">
</div>
</div>
</div>
<br>
<td><label align="center" style="font-family:sans-serif;color:black"># of Stops</label></td>
<select class="form-control selectpicker" id="stops" name="stops" size="1" tabindex="14" width="150px">
<option value="0">No Stop</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<div align="center">
<input onclick="send()" type="submit" name="submit" value="Send" style="font-weight:600" class="btn btn-primary">
</div>
</form>
JS
var send = function() {
var pickUpDate = document.getElementById('datepicker').value;
var totalStops = document.getElementById('stops').value;
var inputData = {"pickUpDate":pickUpDate,
"totalStops":totalStops }
$.post('http://localhost:8080/WelcomeLimoUsa/Reservations', inputData, myData, "json");
function myData(data) {
}
};
サーブレット
@WebServlet("/Reservations")
public class Reservations extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
if(request != null) {
System.out.println("PickUp Date is: " +
request.getParameter("pickUpDate"));
System.out.println("total Stops is: " + request.getParameter("totalStops"));
String pickUpDate = request.getParameter("pickUpDate");
Integer totalStops = Integer.parseInt(request.getParameter("totalStops"));
}else{
System.out.println("#############Request is null#########");
}
}
catch (Exception e){
e.printStackTrace();
System.out.println("Exception occured");
}
}
}
サーバー側のエラー
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:542)
at java.lang.Integer.parseInt(Integer.java:615)
at com.welcomelimo.controller.Reservations.doPost(Reservations.java:50)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2508)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2497)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:542)
at java.lang.Integer.parseInt(Integer.java:615)
at com.welcomelimo.controller.Reservations.doPost(Reservations.java:50)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2508)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2497)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Exception occured
PickUp Date is: null
あなたの例外はあなたのコードと一致しません。 javaサーブレットには '' Integer.parseInt''はありません。また、 "pickUpDate"という名前のGET変数またはPOST変数にアクセスしようとしていますが、そのようなことはありません。キーと値のペアではなく、json構造を投稿します。 – f1sh
@ f1sh、私は投稿を更新しました。サーブレットは、私がJSONオブジェクトに "pickUpDate"を含めた$ .post()を使用してフロントエンドから送信するクエリパラメータから "pickUpDate"を取得しています。 – JoeZ
値がサーブレットに到着した場合、何が問題になりますか? – f1sh