0

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

我不知道出了什么问题,因为这是比较字符串的正确方法。

4

2 回答 2

1

为什么不改用 JSTL:

<c:if test="${param.type == 'recover'}">
    <h1>Recover</h1>
</c:if>
<c:if test="${param.type == 'reset'}">
    <h1>Reset</h1>
</c:if>

您不必关心参数是否为空,它会更干净。不应再使用小脚本。在很长一段时间内都是如此。

于 2012-09-21T13:02:06.893 回答
0

request.getParameter()可以返回 null,您可能需要在执行之前检查并确保返回值不为 null .equals()

于 2012-09-21T12:58:13.337 回答