Im новое для Java и опробование некоторого финансового анализа java-файла, который я использую для своих исследований. Я получил его, чтобы работать, когда я создал основной метод внутри самого компонента. Однако, когда я пытаюсь передать значения, необходимые в форме jsp, и используя метод doPost для сервлета для выполнения вычислений путем создания экземпляров методов из компонента, ничего не происходит, я получаю исключение NullPointerException. Я предполагаю, что BlackScholes.java работает как bean-файл, и что проблема находится в представленном коде. Помощь здесь будет очень признательна.Использование метода Servlet doPost
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException,IOException {
String action = request.getParameter("action");
if (action != null) {
try {
String spotPrice = request.getParameter("sprice");
String strikePrice = request.getParameter("strike");
String interestRate = request.getParameter("rate");
String timeTo = request.getParameter("time");
String vol = request.getParameter("volatility");
double sprice = Double.parseDouble(spotPrice);
double strike = Double.parseDouble(strikePrice);
double rate = Double.parseDouble(interestRate);
double time = Double.parseDouble(timeTo);
double volatility = Double.parseDouble(vol);
double carryrate = rate;
request.setAttribute("sprice", sprice);
request.setAttribute("strike", strike);
request.setAttribute("rate", rate);
request.setAttribute("time", time);
request.setAttribute("volatility", volatility);
BlackScholes BS = new BlackScholes(carryrate);
BS.bscholEprice(sprice, strike, volatility, time, rate);
double currentpriceC = BS.getCalle();
request.setAttribute("validation1", currentpriceC);
} catch (NullPointerException e) {
return;
}
} else {
request.getRequestDispatcher("/index.jsp").forward(request,
response);
}
}
}
Файл JSP используется для создающих данные формы:
<form action="${pageContext.request.contextPath}/OptionsController"
method="post">
<input type="hidden" name="action" value="docalculate" />
Spot Price: <input type="text" name="sprice" /> <br />
<p />
Strike Price: <input type="text" name="strike" /> <br />
<p />
Risk Free Rate: <input type="text" name="rate" /> <br />
<p />
Months To Expire: <input type="text" name="time" /> <br />
<p />
Volatility: <input type="text" name="volatility" /> <br />
<p />
<input type="submit" value="Submit" /><br />
<p />
One call options costs: <input type="text" name="validation1"
readonly="readonly"
value="<%if (request.getAttribute("validation1") != null) {
out.print(request.getAttribute("validation1"));
}%>">
</form>
использование 'e.printStackTrace()' в блоке поймать и поместить детали исключения здесь .. – Prabhaker
Как говорит @Prabhaker, показывают нам сведения об исключении .. – user2520969
ловя NullPointerException и возвращение в блоке поймать, как будто ничего не произошло, вам «стреляйте в ногу: вы скрываете ошибку и не можете узнать, где это происходит. Не скрывайте ошибок. Исправьте их. И первое, что нужно сделать, чтобы исправить это, - это удалить этот блок catch, позволить исключение произойти и прочитать трассировку стека исключений. –