【问题标题】:How to set the value of a check box dynamically in jsp (values are coming from database)如何在jsp中动态设置复选框的值(值来自数据库)
【发布时间】:2011-09-26 09:11:37
【问题描述】:

我有一个jsp 文件,我必须在其中显示带有日期和描述的注释 由于特定日期可能有多个注释(如在调度程序中),因此一次显示多个注释。现在我希望该用户可以通过在复选框的帮助下检查它们来修改数据库中的特定注释。现在,由于注释的值是从数据库中动态获取的,我该如何设置复选框的值。

fetchcontent.java

public class CnmsDes extends HttpServlet{
    public void doPost.......{
        List list=new ArrayList();
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        System.out.println("Oracle Connect Example.");
        Connection conn = null;
        String url = "jdbc:oracle:thin:@localhost:1521:xe";
        String driver = "oracle.jdbc.driver.OracleDriver";
        String userName = "system"; 
        String password = "mint";
        Statement st;
        try {
            Class.forName(driver).newInstance();
            conn = DriverManager.getConnection(url,userName,password);
            System.out.println("Connected to the database");

            String  ndate  = request.getParameter("date");
            String  eid  = request.getParameter("empid");
            String strar[] = ndate.split("/");
            String cdate = strar[0]+"/" + strar[1]+"/"+ strar[2];
            if(eid==null||eid=="Enter Your Employee ID"){response.sendRedirect("viewnotes.jsp");}
            String query = "select * from CNMS_NOTES where emp_id='"+eid+"' and note_date='"+cdate+"'";

            Statement stmt=conn.createStatement();
            ResultSet rs=stmt.executeQuery(query);


            while(rs.next()){
                list.add(rs.getString("note_date"));
                list.add(rs.getString("title"));
                list.add(rs.getString("description"));

            }

        }
        catch(Exception e){out.print(e);}
        request.setAttribute("description",list);
        RequestDispatcher rd = request.getRequestDispatcher("/displaynotes.jsp");
        rd.forward(request, response);
    } 
}

displaynotes.jsp

<%@page language="java" import="java.util.*" %>
<html>
    <body background="images/bg1.jpg">     
        <form>
            <table class="t" border="1" width="650" align="center" >
                <tr>
                    <td width="10"><b></b></td>
                    <td width="100"><b>Date</b></td>
                    <td width="150"><b>Title</b></td>
                    <td width="100"><b>Description</b></td>            
                </tr>

                <%  
                    Iterator itr;
                    List data=(List)request.getAttribute("description");            
                    int k=data.size();
                    request.setAttribute("size",k);        
                    for(itr=data.iterator();itr.hasNext();) {
                %>

                <tr class="a">          
                    <td>
                        <input type="checkbox" name="cbdate" value="<%=request.getParameter("checkeddate") %>">
                    </td>
                    <td width="100">
                        <input type="text" name="checkeddate" value="<%=itr.next()%>" class="b">
                    </td>
                    <td width="150">
                        <input type="text" name="checkedtitle" value="<%=itr.next()%>" class="b">
                    </td>
                    <td width="200">
                        <textarea cols="39" rows="3"><%=itr.next()%></textarea>
                    </td>        
                </tr>
                <% } %>
            </table>
            <table border="1" align="center">
                <tr>
                    <td>
                        <input type="submit" value="MODIFY" onclick="this.form.action='expriment.jsp';">
                    </td>
                    <td>
                        <input type="submit" value="DELETE" onclick="this.form.action='abc.jsp';">
                    </td>
                </tr>
            </table>
        </form>
    </body>
</html>

【问题讨论】:

  • o_O 需要一些编辑..

标签: jsp checkbox


【解决方案1】:

我要做的是创建一个新的 List 数组,然后将您当前的列表对象添加到该数组中。

或者说真的,我可能会继续创建一个名为 Notes 的新类文件,该文件将保存您拥有的 3 个变量 ndate、eid、cdate,然后为它们创建 getter/setter。然后我会在 while (rs.next) 循环中调用 Notes 类的新实例,使用我创建的 setter 方法设置每个值,然后将其添加到我创建的 List Array。

public class Notes{

Date ndate;
String Title;
Date cdate;
int eid;

//create getter methods
//create setter methods
}

现在是 CnmsDes 类

public class CnmsDes extends HttpServlet{
    public void doPost.......{List list=new ArrayList();
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        System.out.println("Oracle Connect Example.");
        Connection conn = null;
        String url = "jdbc:oracle:thin:@localhost:1521:xe";
        String driver = "oracle.jdbc.driver.OracleDriver";
        String userName = "system"; 
        String password = "mint";
        Statement st;
        try {
            Class.forName(driver).newInstance();
            conn = DriverManager.getConnection(url,userName,password);
            System.out.println("Connected to the database");

            String  ndate  = request.getParameter("date");
            String  eid  = request.getParameter("empid");
            String strar[] = ndate.split("/");
            String cdate = strar[0]+"/" + strar[1]+"/"+ strar[2];
            if(eid==null||eid=="Enter Your Employee ID"){response.sendRedirect("viewnotes.jsp");}
            String query = "select * from CNMS_NOTES where emp_id='"+eid+"' and note_date='"+cdate+"'";

            Statement stmt=conn.createStatement();
            ResultSet rs=stmt.executeQuery(query);

            List<Notes> notesList = new ArrayList<Notes>();
            while(rs.next()){
                Notes myNotes = new Notes;
                myNotes.setNdate(rs.getDate("note_date"));
                myNotes.setTitle(rs.getString("title"));
                //you get the idea
                notesList.add(myNotes);
            }

        }
        catch(Exception e){out.print(e);}
        request.setAttribute("description",list);
        RequestDispatcher rd = request.getRequestDispatcher("/displaynotes.jsp");
        rd.forward(request, response);
    } 
}

【讨论】:

  • 感谢先生,这对我帮助很大。现在我可以继续我的项目了。
  • @Vikram :如果它帮助您解决问题,请接受他的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-10
  • 2017-08-22
  • 1970-01-01
  • 2015-09-19
相关资源
最近更新 更多