본문 바로가기
JSP

[ JSP ] 동적 테이블 변경을 받아서 자바에서 처리

by 정윤재 2008. 10. 24.

Dtable.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script language="javascript" type="text/javascript">

 var tbl;
 //addRow()와 delRow()에서 모두 쓰기 위해
function addRow()
{
 tbl=document.getElementById("changeTbl");
 //dom을 쓰기 위해 객체 생성
 
 tbl.rows[tbl.clickedRowIndex].cells[1].innerHTML =
 //클릭 이벤트 발생한 Row에 삭제 넣기
    "<input type='button' value='삭제' onClick='delRow()'>";
 var oRow = tbl.insertRow();
 oRow.onmouseover = function() { tbl.clickedRowIndex = this.rowIndex };

 var oCell1 = oRow.insertCell();

 oRow = tbl.insertRow();
 oRow.onmouseover = function() { tbl.clickedRowIndex = this.rowIndex };
 var oCell1 = oRow.insertCell();
 var oCell2 = oRow.insertCell();

 oCell1.innerHTML = "<input type='text' name='textExample'>";
 oCell2.innerHTML = "<input type='button' value='추가' onClick='addRow()'> ";            
}
function delRow()
{
 tbl.deleteRow(tbl.clickedRowIndex);
 tbl.deleteRow(tbl.clickedRowIndex);
}

</script>
</head>
<body>
 <center>
  동적 테이블 변경 입니다.
  <form action="DtableProc.jsp">
   <table border="1" id="changeTbl" >
   
    <tr onmouseover="changeTbl.clickedRowIndex=this.rowIndex">
    <!-- 이 부분이 키포인트  어떤 부분이 클릭 이벤트가 발생할 것인가  알려주기-->
     <td><input type="text" name="textExample"></td>
     <td> <input type='button' value='추가' onClick='addRow()'></td>
    </tr>
    
  
   </table>
   <input type="submit" value="전송">
  </form>
   
 </center>
</body>
</html>

<!-- tr과 tr 사이에 새로운tr이 들어가는 구문입니다. 그런데 tbl.clickedRowIndex 가 안먹는 군요 어떻게 된걸까요? -->


//DtableProc.jsp *****************************
<%@ page language="java" import="com.*,java.util.*" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd">
<%
DtableDAO dao = new DtableDAO();
Vector v  = dao.printText(request);
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
for(int i=0;i<v.size();i++){
%>
<center>
 <br>
 <%=(String)v.get(i)%>
 <br>
<%} %>
</center>
</body>
</html>

// DtableDAO.java *************************
package com;
import java.util.*;
import javax.servlet.http.HttpServletRequest;

public class DtableDAO {
 public Vector printText(HttpServletRequest request){
  
  String[] textExample = request.getParameterValues("textExample");
  //cos.jar일 경우 그냥 request를 multipart로 바꾸기만 하면 됨
  System.out.println("길이 : "+textExample.length);
  Vector v = new Vector();
  //여기에서 DB에 집어넣게 하든가 하면 됨
  for(int i=0;i<textExample.length;i++){
   v.add(textExample[i]);
  }
  return v;
 }
}


댓글