问题描述
我有一个使用 js 代码生成无线电输入的表单。但是当我尝试提交表单时,选定的值没有被发送到 servlet,我得到了空指针异常。
onMyPage.jsp
<form action="generate" method="post">
<%
for (Monitor mtr : maInfo.getMonitor()) {
out.println("<input style=\"margin-left:20px\" type=\"radio\" name=\"monitor\" value=\""+mtr.getMonitorAbbr()+"\"/>"+mtr.getMonitorAbbr()+"<br>");
}
%>
<input type="submit" value="Submit" onclick="this.disabled=true"/>
</form>
在 servlet.java 上
String variable = (String) request.getAttribute("monitor");
错误信息:
java.lang.NullPointerException: Cannot invoke "Object.toString()" because the return value of "javax.servlet.http.HttpServletRequest.getAttribute(String)" is null
解决方法
Request.getAttribute() 主要用于获取请求中的请求头或字段值。 属性也可用于设置请求范围内的一些对象。这有助于请求转发。
Request.getParameter() 用于获取 HTTP 请求的表单参数。
请参考 HTTPServletRequest 文档