2012-12-07 25 views
3

當我嘗試獲取值後更新兩個或更多的行列,並試圖獲得在servlet中,即時通訊只有一個值在servlet中,我必須發送兩個或更多行,或者我們可以說,項目的更新列表,另一個servlet什麼即時嘗試做我必須給她寫PLZ幫我即時通訊新的Servlet和JSP獲取更新後的數值列表更新值的servlet中的行後檢查複選框

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
     pageEncoding="ISO-8859-1"%> 
    <%@ page import="com.nousinfo.tutorial.employee.service.model.bo.EmployeeProjectBO"%> 
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 
    <%@page import="com.nousinfo.tutorial.employee.service.model.bo.EmployeeBO"%> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <html> 
    <head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>Update Project</title> 
    <link rel="stylesheet" href="css/style.css" type="text/css"></link> 

</head> 

    <body > 

     <form action="ProjectUpdateServlet"> 
     <table border="1" width="500" id="tbl"> 
       <tr> 
        <td width="234"><b>click</b></td> 
        <td width="119"><b>Employee Number</b></td> 
        <td width="234"><b>Project Code</b></td> 
        <td width="234"><b>Start Date</b></td> 
        <td width="234"><b>End Date</b></td> 
        <td width="234"><b>Role</b></td> 

       </tr> 

      <c:forEach var="employeeProjectBO" items="${sessionScope.projectList}"> 
       <tr> 
        <td><input type="checkbox" value='${employeeProjectBO.projectCode}' name="projectCode"></td> 
        <td><input type="text" value='${employeeProjectBO.employeeNumber}' name="employeeNumber" readonly="readonly"/></td> 
        <td><input type="text" value='${employeeProjectBO.projectCode}' name="projectCode" readonly="readonly"/></td> 
        <td><input type="text" value='${employeeProjectBO.startDate}'name="startDate"/></td> 
        <td><input type="text" value='${employeeProjectBO.endDate}' name="endDate"/></td> 
        <td><input type="text" value='${employeeProjectBO.role}' name="role"/></td> 
         <td><input type="hidden" name="updateStatusProject" value="M" /></td> 
       </tr> 
      </c:forEach> 
     </table> 




       <p>&nbsp;</p> 
       <br /> 
       <table width="200" border="0" align="center"> 
        <tr> 

         <td><center> 
           <input type="submit" name="submit" value="update" onclick="self.close()"> 
          </center></td> 

         <td><center> 
           <input type="button" name="cancle" value="cancle" 
            onclick="self.close()"/> 
          </center></td> 
        </tr> 
       </table> 
       <hr size="1" width="786"> 
       <p>&nbsp;</p> 
     </form> 
     </body> 
     </html> 

,這是我的servlet

package com.nousinfo.tutorial; 

import java.io.IOException; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import com.nousinfo.tutorial.employee.service.model.bo.EmployeeProjectBO; 

/** 
* Servlet implementation class ProjectUpdateServlet 
*/ 
public class ProjectUpdateServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public ProjectUpdateServlet() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 

    protected void service(HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException { 
      String[] projectCode= request.getParameterValues("checkedProject"); 
      for(int i=0; i<projectCode.length; i++) { 
        System.out.println(projectCode[i]);} 
     System.out.println(request.getSession().getAttribute("projectList")); 
     if (request.getParameter("submit") != null) { 
      request.getSession().setAttribute("employeeProjectBO", 
        setEmployeeProject(request)); 
     } 

    } 

    public EmployeeProjectBO setEmployeeProject(HttpServletRequest request) { 
     EmployeeProjectBO employeeProjectBO = new EmployeeProjectBO(); 
     String[] projectCode= request.getParameterValues("checkedProject"); 

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

     employeeProjectBO.setUpdateStatus(request.getParameter("updateStatusProject").charAt(0)); 

     employeeProjectBO.setEmployeeNumber(Long.parseLong(request 
       .getParameter("employeeNumber"))); 
     employeeProjectBO.setProjectCode(request.getParameter("projectCode")); 
     employeeProjectBO.setStartDate(new java.sql.Date(getDate(
       request.getParameter("startDate")).getTime())); 
     employeeProjectBO.setEndDate(new java.sql.Date(getDate(
       request.getParameter("endDate")).getTime())); 
     employeeProjectBO.setRole(request.getParameter("role")); 
     System.out.println(request.getParameter("role"));} 
     return employeeProjectBO; 
    } 

    private static Date getDate(String source) { 
     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
     try { 
      return format.parse(source); 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      return new Date(); 
     } 
    } 
} 

enter image description here

+1

也以英語,似乎新標點。請找一個能夠重寫你的問題的人,因爲我無法理解它。並添加更多的上下文:你想做什麼? –

+0

@JBNizet實際上,在多行中更改多個列的值之後,當我檢查了我的行時,我無法在我的servlet中獲得那些多個更新的值,除了一個頂行之外。因此如何獲取這些列表在我的servlet中更新了值 – henrycharles

回答

0

1) 您應複選框創建不同的名稱 NAME = 「projectCode」 例如employeeProjectBO.projectCode中的servlet添加到這個輸入名稱

2)

for(int i=0; i<projectCode.length; i++) { 
request.getParameterValues("checkedProject"+projectCode.getProjectCode); 
… 
}