2013-06-23 3 views
3

제목에서 설명한대로 JSP 페이지에서 내 서블릿으로 데이터를 전달해야합니다. 데이터베이스의 데이터를 JSP 페이지의 양식으로로드합니다. 이제 사용자는 해당 데이터를 변경할 수 있어야합니다. 그래서 데이터베이스를 업데이트하기 위해 변경된 데이터를 내 서블릿에 다시 보내야합니다.JSP에서 Servlet으로 데이터 전달하기

이 내 JSP입니다 그러므로 내 서블릿에서 doPost() 방법을 사용하려면 :

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <meta http-equiv="content-script-type" content="text/javascript" /> 
    <meta http-equiv="content-style-type" content="text/css" /> 
    <meta http-equiv="content-language" content="de" /> 

    <link href="../resources/css/basic.css" type="text/css" rel="stylesheet" /> 

    <title>Edit Movie</title> 
</head> 

<body> 
    <div id="wrapper"> 
     <h2 id="title">Edit Person</h2> 
     <br></br> 
     <br></br> 
     <form id="1" class="appnitro" method="post" action="">      
      <ul> 
       <li id="li_1" > 
        <label class="description" for="element_1">Name</label> 
        <div> 
         <input id="element_1" name="element_1" class="element text large" type="text" maxlength="255" value="${requestScope.person.name}"/> 
        </div> 
       </li>  
       <li id="li_2" > 
        <label class="description" for="element_2">Deparment</label> 
        <div> 
         <input id="element_2" name="element_2" class="element text large" type="text" maxlength="255" value="${requestScope.person.department}"/> 
        </div> 
       </li> 
       <li id="li_3" > 
        <label class="description" for="element_3">Job</label> 
        <div> 
         <input id="element_3" name="element_3" class="element text large" type="text" maxlength="255" value="${requestScope.person.job}"/> 
        </div> 
       </li>  
       <li id="li_4" > 
        <label class="description" for="element_4">Biographie</label> 
        <div> 
         <textarea id="element_4" name="element_4" class="element textarea medium">${requestScope.person.biography}</textarea> 
        </div> 
       </li> 
       <li class="buttons"> 
        <input type="hidden" name="form_id" value="652973" /> 
        <input id="saveForm" class="button_text" type="submit" name="submit" value="Submit" /> 
       </li> 
      </ul> 
     </form>     
    </div> 
</body> 
</html> 

그리고 이것은 doPost() 방법없이 내 서블릿입니다 :

import java.io.IOException; 

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

import de.hof.university.spj.model.People; 
import de.hof.university.spj.model.PeopleDAO; 

public class SinglePersonEditServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 
    private PeopleDAO peopleDao = new PeopleDAO(); 

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { 
     String name = "id"; 
     String value = request.getParameter(name); 

     int id = Integer.parseInt(value); 

     People people = peopleDao.getPerson(id); 

     request.setAttribute("person", people); 

     RequestDispatcher reqDispatcher = request.getRequestDispatcher("../jsp/singlePersonEdit.jsp"); 
     reqDispatcher.forward(request, response); 
    } 
} 

제출 버튼이있었습니다 내가 데이터베이스에 저장할 수 있도록 변경된 데이터를 내 서블릿에 보내려고합니다.

답변

4

String name = "id"; String value = request.getParameter(name);?

String element_1_value = request.getParameter("element_1") ; 

어느 쪽이든 당신은 잊었 : 나는 서블릿에서 어떤 = "ID"name을의 당신의 JSP에 입력 ...

를 찾을 수 없습니다, 당신이 (예를 들어)이 있어야한다 id가 name 인 입력 또는 뭔가 빠졌습니다. 어떤 경우이든 코드 내에서 수정해야합니다.

양식 태그의 action 속성에서 서블릿의 이름을 삽입 깜빡 언급, 그래서 당신이 있었다하지 :

<form id="1" class="appnitro" method="post" action=""> 

어떤이가되어야 : 마지막으로

<form id="1" class="appnitro" method="post" action="SinglePersonEditServlet"> 

을 동작 방법이 "post" (위의 두 코드 줄에 표시된 바와 같이)이고, 질문의 서블릿 부분에 doGet으로 작업하는 경우 코드가 완료되지 않은 한 doPost에 넣어야합니다. 그렇지 않으면 충분합니다. doGet 번으로 doPost 번으로 전화하십시오.

저는 초심자입니다. 그래서 그것을 볼 때 우리는 모두 어딘가에서 시작했고 나는 이것을 totu 또는 "서블릿으로 양식 데이터 처리"에 대한 좋은 검색으로 추천합니다.

: this 복제본 : 추가 학습을 위해 확인하십시오 :).

감사합니다.

+0

다른 사이트에서 온 것입니다 !!! 단일 사이트에 대한 링크가있는 people.jsp 사이트가 있습니다. 문자열 이름 ="id "주어진 id로 데이터베이스에서 사람을 선택하고 위의 jsp 사이트 포스트 셋에 제공해야합니다. 내 첫 번째 입력은 정확합니다. 왜냐하면 텍스트 필드에 실제로 저장된 데이터를 데이터베이스에서 보여주기를 원하기 때문입니다. 사용자는 이제 텍스트 필드 입력을 변경할 수 있어야합니다. 이것이 내 서블릿에주고 싶은 것입니다. – Mulgard

+0

괜찮습니다. 'value = "$ {requestScope.person.name}"을 유지하십시오. 하지만 나머지는 제 기능을 발휘할 수있는 기본적인 개념이 빠져 있다고 생각합니다.나는 나의 대답을 편집했다. – Akheloes

+0

그렇지 않으면 : value id의 속성'name'을 가진 요소는 어디에 있는가? – Akheloes

관련 문제