我有一个servlet,我想在其中比较请求参数。我正在使用以下代码
<body>
<%
if(request.getParameter("type")!=null)
{
if(request.getParameter("type").equals("recover"))
{
%>
<h1>Recover</h1>
<%
}
}
else if(request.getParameter("type")!=null)
{
if(request.getParameter("type").equals("reset"))
{
%>
<h1>Reset</h1>
<%
}
}
%>
</body>
但是这个jsp给出了编译时异常堆栈跟踪
org.apache.jasper.JasperException: An exception occurred processing JSP page /recover.jsp at line 16
</head>
<body>
<%
if(request.getParameter("type").equals("recover")) <--- line16
{
%>
<h1>Recover</h1>
我不知道哪里出错了,因为这是比较字符串的正确方法。
答案 0 :(得分:1)
为什么不使用JSTL:
<c:if test="${param.type == 'recover'}">
<h1>Recover</h1>
</c:if>
<c:if test="${param.type == 'reset'}">
<h1>Reset</h1>
</c:if>
你不必关心参数为null,它会更清晰。不应再使用scriptlet。对于漫长的时间来说,这是真的。
答案 1 :(得分:0)
request.getParameter()
可以返回null,在执行.equals()
之前,您可能需要检查并确保返回值不为null。