代码之家  ›  专栏  ›  技术社区  ›  Cheung

JSP-初学者问题,绕过if..语句页面加载?

jsp
  •  0
  • Cheung  · 技术社区  · 16 年前

    我是JSP新手,对以下代码有一些问题:

        <%@ page contentType="text/html;charset=Big5" %>
    <html>
        <head>
        <title></title>
        </head>
        <body>
            <form method="post" action="InsertStudent.jsp">
        <input type="text" size="20" name="txtName" />
        <input type="text" size="20" name="txtDob" />
        <input type="text" size="20" name="txtProStudied" />
        <input type="submit" name="B1" value="Submit" />     
            </form>
    
    <% 
      if (request.getParameter("txtName") !="" && request.getParameter("txtDob") != "" && request.getParameter("txtProStudied") != "" ) {
                  out.println("...bypass the if....statement");               
      }
    %>
    
        </body>
    </html>
    

    如果运行此代码,out.println将激发3输入框是否有值。。

    2 回复  |  直到 16 年前
        1
  •  3
  •   user266622 user266622    16 年前

    因为request.getParameter返回字符串,所以不能使用!=接线员。你必须使用相等的函数。request.getParameter的返回值也可能为null。你也需要检查一下。

    if (request.getParameter("txtName") != null && !"".equals(request.getParameter("txtName")) 
     && request.getParameter("txtDob") != null && !"".equals(request.getParameter("txtDob")) 
     && request.getParameter("txtProStudied") != null && !"".equals(request.getParameter("txtProStudied"))) {
        out.println("...bypass the if....statement");               
    }
    

    最好定义一个函数来测试返回值是空字符串还是null,以减少代码。

    public boolean isEmpty(String s)
    {
        return (null == s || "".equals(s.trim()))
    }
    
        2
  •  0
  •   poundifdef    16 年前

    或许可以试试:

    if (request.getParameter("txtName").equals("")) { }
    

    或.compareTo(),或.compareToIgnoreCase()

    推荐文章