替换或隐藏servlet中的类似值

时间:2016-05-11 01:31:37

标签: java servlets

问题:

我正在从数据库中检索值,它将与主管和审查员的 Intent intent= getIntent(); String message = intent.getStringExtra("com.example.owner.MESSAGE"); 匹配。但是,如果这两者之间没有availabilityID匹配,则availabilityID默认为0。

我在我的servlet中创建了一个条件,如果availabilityID都为0,我想用我的查询选择的任何数字替换它。

我的servlet的一部分:

availabilityID

我知道我的结果是这样的:

 for (int i=0 ; i<studentID.length ; i++){

     FreeBean free = new FreeBean();

     free = GenerateScheduleDAO.getFree(supervisorID[i],examinerID[i]);

     nt SVavailableID = free.getAvailableID();
     int EXavailableID = free.getAvailableID();
     Date FreeDate = free.getFreeDate();


     out.println("<td>"+ studentID[i]+"</td>");
     out.println("<td> Hello </td>");
     out.println("<td>"+ supervisorID[i] +"</td>");
     out.println("<td>"+ examinerID[i] +"</td>");
     out.println("<td>"+ SVavailableID+"</td>");
     out.println("<td>"+ EXavailableID+"</td>");
     out.println("<td>"+ FreeDate+"</td>");
     out.println("</tr>");

     if (SVavailableID ==0 && EXavailableID ==0 )
     {

        free= GenerateScheduleDAO.getOtherFree(supervisorID[i],examinerID[i]);

        int otherSVavailableID = free.getAvailableID();
        int otherEXavailableID = free.getAvailableID();

        out.println("<tr>");
        out.println("<td>"+ studentID[i]+"</td>");
        out.println("<td> Hello </td>");
        out.println("<td>"+ supervisorID[i] +"</td>");
        out.println("<td>"+ examinerID[i] +"</td>");
        out.println("<td>"+ otherSVavailableID+"</td>");
        out.println("<td>"+ otherEXavailableID+"</td>");
        out.println("<td>"+ FreeDate+"</td>");
        out.println("</tr>");

     }

}// student loop

第一行显示,主管和审查员的Student Name | Project Title | Supervisor Name | Examiner Name | Presentation 1 | Presentation 2 | Date abc 1111 tan tin 0 0 1/1/16 abc 1111 tan tin 12 12 1/1/16 都是0.因此,它将执行IF语句并为它们找到另一个可能的availabilityID。因此,它将复制其中一个由0组成且一个由新值组成的行。

如何使用新值替换0的行。或者至少,使用availabilityID = 0隐藏行,并仅显示检索到的新值。有没有有效的方法?

1 个答案:

答案 0 :(得分:0)

我认为你需要做的就是确保你只执行一个逻辑流程。在正确的位置使用if语句可以实现这一目标。

for (int i=0; i < studentID.length; i++) {
    FreeBean free = new FreeBean();
    free = GenerateScheduleDAO.getFree(supervisorID[i],examinerID[i]);

    int SVavailableID = free.getAvailableID();
    int EXavailableID = free.getAvailableID();
    Date FreeDate = free.getFreeDate();

    // handle the edge case here
    if (SVavailableID == 0 && EXavailableID == 0) {
        free = GenerateScheduleDAO.getOtherFree(supervisorID[i],examinerID[i]);

        SVavailableID = free.getAvailableID();
        EXavailableID = free.getAvailableID();
    }

    // now print out each record only one time
    out.println("<tr>");
    out.println("<td>"+ studentID[i]+"</td>");
    out.println("<td> Hello </td>");
    out.println("<td>"+ supervisorID[i] +"</td>");
    out.println("<td>"+ examinerID[i] +"</td>");
    out.println("<td>"+ SVavailableID+"</td>");
    out.println("<td>"+ EXavailableID+"</td>");
    out.println("<td>"+ FreeDate+"</td>");
    out.println("</tr>");
}

解决问题的另一种方法是让SQL查询为你处理双零值。