比较JSP中的请求参数

时间:2012-09-21 12:55:05

标签: jsp exception compare

我有一个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>

我不知道哪里出错了,因为这是比较字符串的正确方法。

2 个答案:

答案 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。