티스토리 뷰
예제) 다음처럼 input element를 동적으로 추가하도록 만들어진 form에서 사용자가 입력한 값을 jsp를 이용해서 출력해보자
이 문제를 해결하기 위해서는 총 3가지의 파일과 1개의 javabean 클래쓰가 필요할 것이다:
- form.jsp: Form화면이 나오고 사용자로부터 입력 값을 요구하는 페이지
- process.jsp: 자바빈의 형식으로 데이터를 받아서 출력페이지(output.jsp)로 보내주는 페이지
- output.jsp: 자바빈의 변수들을 받아와서 화면에 사용자가 입력했던 값을 출력해주는 페이지
- User.java: 사용자가 입력한 값에 대해 getters와 setters으로 데이터를 받아오는 클래쓰 (사용자가 동적으로 element들을 추가하기 때문에 변수는 string[] type으로 선언해야 할 것이다.)
위의 form 코드는 다음과 같다[더보기 클릭]:
더보기
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<style>
input.inline {display:inline;width:70%;margin-right:10px}
</style>
<script>
var i = 0;
$(document).ready(function(){
$("#newdata").hide();
$("#add").click(function(){
i++;
var html= $("#newdata").html().replace("new", "new" + i);
$("#elements").append(html);
});
$(document).on('click', '.remove', function(){
$(this).parent().remove();
});
});
</script>
</head>
<body oncontextmenu='return false' onselectstart='return false' ondragstart='return false'>
<div class="container">
<h3>Dynamically Add or Remove input field with JQuery</h3>
<form id='form1' action="process.jsp">
<div id= 'elements'>
<div class="form-group" id='form-group1'>
<input type="text" class="form-control inline" placeholder='Enter your hobby'><button type="button" class="btn btn-primary" id='add'>ADD</button>
</div>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
<div id='newdata'>
<div class="form-group" id='new'>
<input type="text" class="form-control inline" id='data' placeholder='Enter your hobby'><button type='button' class="btn btn-danger remove" >X</button>
</div>
</div>
</body>
</html>
jsp 파일로 사용자 입력 값을 보내주기 위해서는 우선 name을 input 항목에 추가해줘야 할 것이다.
process.jsp:
<jsp:useBean id="hobby" class="com.info.User"></jsp:useBean>
<jsp:setProperty property="*" name="hobby"/>
<jsp:forward page="output.jsp"/>
자바빈 클래쓰 파일에서는 name 이름으로 값을 배열 형식으로 받아오도록 한다(사용자가 동적으로 값을 추가해가면서 입력하기 때문에 몇개의 value를 입력하게 될지 모르기 때문에 배열을 사용한다)
User.java:
package com.info;
public class User {
private String[] hobby;
public String[] getHobby() {
return hobby;
}
public void setHobby(String[] hobby) {
this.hobby = hobby;
}
}
배열 값을 출력하고 싶을 때는 다음과 같은 코드를 사용하면 된다
output.jsp:
<p><%=String.join("\n, ",request.getParameterValues("hobby"))%></p>
출력 예시:
'JSP' 카테고리의 다른 글
JSP CRUD 프로젝트 제작하기 #2 (0) | 2020.10.20 |
---|---|
JSP CRUD 프로젝트 제작하기 (0) | 2020.10.15 |
JSP: EL (0) | 2020.08.07 |
JSP Action tags와 Javabean 사용법 (0) | 2020.08.06 |
Development in JSP (0) | 2020.08.06 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- HTML #Tables
- html
- HTML #id #iframe
- HTML #media #video #YouTube
- text_shadow
- meta #link #script #base #HTML
- HTML #CSS
- jsp
- fontstyle
- javascript #datatype
- JSP_CRUD
- DB4free
- links lists tables display
- HTML #Canvas #SVG
- STS4
- 2020Camp
- Block_element #inline_element
- box_model
- annotation
- JSP환경구축
- Mavenproject
- DynamicWebProject
- HTML #class
- HTML_Formatting
- UserBean
- 인용문 #주석
- head #title #style
- HTML #Headings #Paragraph #Styles
- HTML_Forms
- css
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함