使用String.toLowerCase()而不会得到解决错误,JSP

时间:2010-11-16 21:26:18

标签: jsp

我对我的代码有一个最后的问题。作为最后一件事我想构建一个将忽略区分大小写的函数。所以“用户”,“用户”和“用户”应该以同样的方式对待。我首先想到了如何实现这样的功能。多数民众赞成我尝试过的:

        <% if (name != null) { namecheck = name.toLowerCase(); } 
           else { namecheck = request.getParameter("name"); }
        %>

        <% if (password != null) { passwordcheck = password.toLowerCase(); } 
           else { passwordcheck = request.getParameter("password"); }
        %>



因为我必须检查它是否为NULL以避免错误,所以实现起来并不容易。 现在我发现我的“namecheck”和“passwordcheck”只能在卷曲的if括号中找到。所以编译器给了我一个“未解决”的错误。如果不写大量的if-else,我不知道如何解决这个问题。

        <?xml version="1.0" encoding="iso-8859-1"?>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
                  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">

        <head>
          <title>Practice</title>
        </head>

        <body>

        <h2>Practice</h2>
        <h3>Please enter your name and the password.</h3>
        <form method="post" action="">
        <table>

        <tr><td style="text-align:center">Name</td>
        <td>
        <input type="text" name="name" value="${fn:escapeXml(param.name)}" /></td>
        </tr>
        <tr><td style="text-align:center">Password</td>
        <td><input type="password" name="password" value="${fn:escapeXml(param.password)}" /></td>

        </tr>
        <tr><td><input type="submit" value="Send" /></td>
        </tr>
        </table>
        </form>

        <%-- Testing name and password. --%>
        <% String name = request.getParameter("name");
           String password = request.getParameter("password");
        %>  

        <%-- Trying to use the .toLowerCase(). --%>

        <% if (name != null) { namecheck = name.toLowerCase(); } 
           else { namecheck = request.getParameter("name"); }
        %>

        <% if (password != null) { passwordcheck = password.toLowerCase(); } 
           else { passwordcheck = request.getParameter("password"); }
        %>    


        <% if (namecheck != null && name.equals("user") && passwordcheck != null && password.equals("1234")) 
             {
        %>
               <p>Your Input is correct!</p>
        <%   }

           else
             {
        %>
               <p>Your input is not correct!</p>
        <%   }
        %>

        </body>


        </html>

4 个答案:

答案 0 :(得分:2)

只需使用String#equalsIgnoreCase()

String name = request.getParameter("name");
String password = request.getParameter("password");
if (name != null && name.equalsIgnoreCase("user")
    && password != null && password.equalsIgnoreCase("1234")) 
{
    // Pass.
}

我一直在重复:JSP是这个东西的错误位置。我希望这只是“正常”的功课。

答案 1 :(得分:1)

也许我没有看到别的东西,但我没有看到你曾经将namecheck和passwordCheck声明为Strings。如果你想让它们保持可用,只需在你得到'name&pas

的地方声明它们

答案 2 :(得分:1)

您必须声明正在使用的变量。

尝试声明namecheckpasswordcheck,例如:

 <% String name = request.getParameter("name");
   String password = request.getParameter("password");
   String namecheck = "";
   String passwordcheck = "";
 %>  

答案 3 :(得分:0)

您可以使用jstl核心代码库更改代码。

API