我试图在用户输入滚动骰子的数字后显示输出,我无法调用我在aligator标签中的计算(< %%>)。我该怎么做?
这是我的代码:
#include <stdio.h>
int main()
{ char i=0;
for(;i>=0;i++);
printf("%d",i);
return 0;
}
答案 0 :(得分:1)
在第一次请求时,页面加载时请求中没有dicenum
参数,除非您以这种方式加载页面:http://localhost:8070/../page.jsp?decinum=20
手动将请求参数添加到URL。
当用户通过<input type="submit" value="submit">
提交表单时,由于您的请求类型为GET
(默认值),请求参数dicenum
会附加到网址,从而形成网址{{1} },其中http://localhost:8070/../page.jsp?decinum=value
将替换为表单中输入的值。
因此,在第一个请求(第一页加载)上,当用户没有提交任何表单值时,没有请求参数value
,因此您在此行中获得NullPointerException
dicenum
因为它解释为int num = Integer.parseInt(request.getParameter("dicenum"));
,因为Integer.parseInt(null)
解释为request.getParameter("dicenum"
你需要防止NullPointerException,包围你的Java语句,所以如果请求参数null
是dicenum
,Java不会评估被包围的块。
null
另一个观察是你不必在 <%
if(request.getParameter("dicenum") != null) {
%>
... your Java statements
<% } %>
重复自己,可以改写为
if... else blocks
同样,这只是一个建议
完整的代码将是:
if (num == 4 || num == 6 || num == 10 || num == 20){
num = 1 + (Math.random()*num);
答案 1 :(得分:0)
在第一次加载jsp时,您没有检查请求参数是否为null,而服务器可能会生成异常。通过以下方法替换您的scriptlet代码:
>>> import pandas as pd
>>> import numpy as np
>>>
>>> df = pd.DataFrame([{'y': 2.0, 'x': 1.0, 'id': 100}, {'y': 1.0, 'x': 3.0, 'id': 200}, {'y': 3.0, 'x': 5.0, 'id': 300}, {'y': 6.0, 'x': 3.0, 'id': 400}, {'y': 3.5, 'x': 3.2, 'id': 500}, {'y': 3.0, 'x': 4.5, 'id': 600}])
>>> df = df.set_index('id')
>>> df
x y
id
100 1.0 2.0
200 3.0 1.0
300 5.0 3.0
400 3.0 6.0
500 3.2 3.5
600 4.5 3.0
>>> center_x, center_y = df.mean()
>>> np.sqrt((center_x - df['x'])**2 + (center_y - df['y'])**2)
id
100 2.527295
200 2.102512
300 1.718688
400 2.930396
500 0.424918
600 1.219517
dtype: float64
>>> (np.sqrt((center_x - df['x'])**2 + (center_y - df['y'])**2)).idxmin()
500
>>> df.loc[(np.sqrt((center_x - df['x'])**2 + (center_y - df['y'])**2)).idxmin()]
x 3.2
y 3.5
Name: 500, dtype: float64