0

私は以下のようにjspを持っています。

<%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
        </head>
        <body>
            <form name="a" action="abc.jsp" method="post">
            <input type="abc" id="abc" name="abc">
            <input type="def" id="def" name="def"></form>
        </body>
    </html>

and the jsp that it is redirected is as below 

        <%@include file="DBCon.jsp" %>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <%try
            {
           int s;
        String a=request.getParameter("a");
        String b=request.getParameter("b");
        String c=request.getParameter("Ship_ID");
        ps=con.prepareStatement("select TSI_QUERY,TSI_R,TSI_C,SI_QUERY,SI_R, SI_C from topical");
        rs=ps.executeQuery();
        if(rs.next()){
        if(rs.getString("TSI_Query")==null && rs.getString("SI_Query")!=null)
        {
            String p="update topical set SI_Query='"+a+"', SI_R='x',SI_C='y' where Job_ID='"+c+"'";
            System.out.print(p);
            /*ps1=con.prepareStatement("update topical set TSI_Query=?, TSI_R=?,TSI_C=?");
            ps1.setString(1, a);
            ps1.setString(2, "x");
            ps1.setString(3, "y");
            s=ps1.executeUpdate();
            if(s!=0){
                String redirectURL= "a.jsp";
                response.sendRedirect(redirectURL);
            }*/
        }
              else if(rs.getString("SI_Query")==null && rs.getString("TSI_Query")!=null)
        {
            String p="update topical set SI_Query='"+b+"', SI_R='x',SI_C='y'where Job_ID='"+c+"'";
            System.out.print(p);

            /*ps1=con.prepareStatement("update topical set SI_Query=?, SI_R=?,SI_C=?");
            ps1.setString(1, b);
            ps1.setString(2, "x");
            ps1.setString(3, "y");
            s=ps1.executeUpdate();
            if(s!=0){
            String redirectURL= "a.jsp";
            response.sendRedirect(redirectURL);}*/
        }
               else if(rs.getString("SI_Query")==null && rs.getString("TSI_Query")==null){
                   if(a==null && b!=null)
                                             {
                 String p="update topical set TSI_Query='"+a+"', TSI_R='x',TSI_C='y'where Job_ID='"+c+"'";
            /* ps1=con.prepareStatement("update topical set TSI_Query=?, TSI_R=?,TSI_C=?");
            ps1.setString(1, a);
            ps1.setString(2, "x");
            ps1.setString(3, "y");
            s=ps1.executeUpdate();
             if(s!=0){
                String redirectURL= "a.jsp";
                response.sendRedirect(redirectURL);
                               }
              */     }
                 else if(b==null && a!=null){
            String p="update topical set SI_Query='"+b+"', SI_R='x',SI_C='y'where Job_ID='"+c+"'";
            System.out.print(p);
                     /*
            ps1=con.prepareStatement("update topical set SI_Query=?, SI_R=?,SI_C=?");
            ps1.setString(1, b);
            ps1.setString(2, "x");
            ps1.setString(3, "y");
            s=ps1.executeUpdate();
            if(s!=0){
                String redirectURL= "a.jsp";
                response.sendRedirect(redirectURL);
                               }*/
                 }
               }
               }

        }
        catch(Exception e)
        {
        out.println(e);
        }
        %>
    </body>
</html>

ここで、受け取ったnull以外の値でデータベーステーブルを更新したいのですが、この列は別の機会に更新される可能性があるため、他の列をnullとして更新しないでください。しかし、クエリ文字列ではなく空白のページが表示されています。そのクエリ文字列を表示する方法を教えてください。

ありがとう

4

1 に答える 1

0

あなたのコードを理解しようとすると、3 つのケースがあるようです

ケース1

TSI_Query == null && SI_Query != null
//print something

ケース 2

SI_Query ==null && TSI_Query != null
//print something

ケース 3

SI_Query ==null && TSI_Query == null
  // check values of a and b, and print only if b==null && a!=null

したがって、すべての可能なパスをたどったわけではありません。出力がないのも不思議ではありません。気をつけてください、あなたも他の問題になる可能性があります。

于 2013-03-08T13:09:25.147 に答える