제목에서 설명한대로 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);
}
}
제출 버튼이있었습니다 내가 데이터베이스에 저장할 수 있도록 변경된 데이터를 내 서블릿에 보내려고합니다.
다른 사이트에서 온 것입니다 !!! 단일 사이트에 대한 링크가있는 people.jsp 사이트가 있습니다. 문자열 이름 ="id "주어진 id로 데이터베이스에서 사람을 선택하고 위의 jsp 사이트 포스트 셋에 제공해야합니다. 내 첫 번째 입력은 정확합니다. 왜냐하면 텍스트 필드에 실제로 저장된 데이터를 데이터베이스에서 보여주기를 원하기 때문입니다. 사용자는 이제 텍스트 필드 입력을 변경할 수 있어야합니다. 이것이 내 서블릿에주고 싶은 것입니다. – Mulgard
괜찮습니다. 'value = "$ {requestScope.person.name}"을 유지하십시오. 하지만 나머지는 제 기능을 발휘할 수있는 기본적인 개념이 빠져 있다고 생각합니다.나는 나의 대답을 편집했다. – Akheloes
그렇지 않으면 : value id의 속성'name'을 가진 요소는 어디에 있는가? – Akheloes