[SPRING]#13 도서 쇼핑몰 구현 (스프링 폼 태그1)

2024. 1. 7. 22:38·SPRING
반응형

스프링 폼 태그

스프링 폼 태그는 스프링 MVC와 연동되는 태그 라이브러리입니다.

이 태그를 사용해서 Setter() 메소드를 작성한 클래스의 프로퍼티에 접근할 수 있습니다.

이렇게 하면 컨트롤러가 다루는 데이터를 참조할 수 있어 동적인 웹을 더 쉽고 간편하게 개발, 유지가 가능합니다.

 

스프링 폼 태그를 사용하기 위해서 뷰 페이지 위쪽에 다음과 같이 선언해줍니다.

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

 

 

스프링 폼 태그 유형은 다음과 같습니다.

태그 유형 설명 출력되는 HTML 태그
<form> 폼의 시작과 끝을 나타낼 때 사용 <form>
<input> 사용자가 일반 텍스트를 입력할 수 있는 입력 필드를 만들 때 사용 <input type="text">
<checkbox> 많은 옵션 중 여러 개를 선택할 때 사용 <input type="checkbox">
<checkboxes> <form:checkbox> 목록을 나타낼 때 사용
<radiobutton> 많은 옵션 중 하나 선택할 때 사용 <input type="radio">
<radiobuttons> <form:radiobutton> 목록을 나타낼 때 사용
<password> 사용자가 텍스트를 입력하면 *로 변환되어 입력할 때 사용 <input type="password">
<select> 콤보 박스나 리스트 박스를 나타낼 때 사용 <select>
<option> <SELECT>...</SELECT>에 포함되어 목록을 구성할 때 사용 <option>
<options> <form:option> 목록을 나타낼 때 사용
<textarea> 사용자가 여러 줄의 텍스트를 입력할 수 있도록 입력 박스 제공할 때 사용 <textarea>
<hidden> 웹 브라우저가 출력하지 않는 입력 폼으로 사용 <input type="hidden">
<errors> 유효성 검사에서 생긴 오류 메시지를 나타낼 때 사용  

 

 


스프링 폼 태그 사용

<form> 태그는 단독으로 쓰이지 않고 사용자로부터 데이터를 입력받는 최상위 태그로 사용됩니다.

형식은 다음과 같습니다.

<form:form 속성1="값1" [속성2="값2"...]>
	//다양한 입력 양식 태그(<input>,<select>,<textarea>)
</form:form>

 

 

<form> 태그는 다음과 같은 속성이 있습니다.

모든 속성은 선택 사항입니다.

속성 설명
modelAttribute (또는 commandName) 참조하는 커맨드 객체 설정 (반드시 첫 글자 소문자)
action 데이터를 받아 처리하는 웹 페이지 URL 설정
method 데이터가 전송되는 HTTP 방식 설정
name 폼을 식별하는 이름 설정
target 폼 처리 결과의 응답을 실행할 프레임 설정
enctype 폼을 전송하는 콘텐츠 MIME 유형 설정
accept-charset 폼 전송에 사용할 문자 인코딩 설정

 

 

<form> 태그는 HTML의 <form> 태그와 달리 modelAttribute 속성을 지원합니다.

이를 통해 <input>이나 <hidden>같은 태그들이 커맨드 객체의 프로퍼티에 접근이 가능합니다.

 

 

스프링 폼 태그들은 <form:form> 태그 내 중첩되어 사용이 됩니다.

사용하고서는 반드시 </> 태그로 닫아줍니다.

<form:form> 태그 내 modelAttribute 속성을 설정하면 중첩되는 <form:form> 태그에

반드시 path 속성을 설정해줍니다.

커맨드 객체의 필드에 접근하기 위함입니다.

<form:form modelAttribute="커맨드 객체">
	<form:태그 이름 path="커맨드 객체의 프로퍼티"/>
</form:form>

 

 

다음은 스프링 폼 태그 사용 예시입니다.

우선 webpage07_01.jsp 파일입니다.

<%@ page contentType="text/html; charset=utf-8" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<html>
<head>
<title>Form Tag</title>
</head>
<body>
	<h3>회원가입</h3>
	<form:form modelAttribute="member" method="post">
		<p>아이디 : <form:input path="id" name="id"/>
		<p>비밀번호 : <form:password path="password"/>
		<p>거주지 : <form:select path="city">
			<form:option value="서울시">서울시</form:option>
			<form:option value="경기도">경기도</form:option>
			<form:option value="인천시">인천시</form:option>
			<form:option value="충청도">충청도</form:option>
			<form:option value="전라도">전라도</form:option>
			<form:option value="경상도">경상도</form:option>
			</form:select>
		<p>성별 : <form:radiobutton path="sex" value="남성"/>남성
			<form:radiobutton path="sex" value="여성"/>여성
		<p>취미 : 독서<form:checkbox path="hobby" value="독서"/>
			운동<form:checkbox path="hobby" value="운동"/>
			영화<form:checkbox path="hobby" value="영화"/>
		<p><input type="submit" value="가입하기"/>
			<input type="reset" value="다시쓰기"/>
	</form:form>
</body>
</html>

 

 

 

그리고 Member.java입니다.

package com.springmvc.domain;

import java.util.Date;

public class Member {
	private int id;
	private String password;
	private String city;
	private String sex;
	private String[] hobby;
	private Date birth;
	
	public Member() {
		super();
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getCity() {
		return city;
	}
	public void setCity(String city) {
		this.city = city;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String[] getHobby() {
		return hobby;
	}
	public void setHobby(String[] hobby) {
		this.hobby = hobby;
	}
	public Date getBirth() {
		return birth;
	}
	public void setBirth(Date birth) {
		this.birth = birth;
	}
	
}

 

 

 

Example01Controller.java 파일입니다.

package com.springmvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.springmvc.domain.Member;

@Controller
public class Example01Controller {
	@RequestMapping("/member")
	public String showForm(Model model) {
		Member member = new Member();
		model.addAttribute("member", member);
		return "webpage07_01";
	}
}

 

 

톰캣 서버 실행 후 'http://localhost/chap07/member'을 입력합니다.

다음과 같이 입력 폼이 출력됩니다.

반응형

'SPRING' 카테고리의 다른 글

[SPRING]#15 도서 쇼핑몰 구현 (데이터 바인딩1)  (0) 2024.01.08
[SPRING]#14 도서 쇼핑몰 구현 (스프링 폼 태그2)  (0) 2024.01.07
[SPRING]#12 도서 쇼핑몰 구현 (요청 파라미터2)  (0) 2024.01.07
[SPRING]#11 도서 쇼핑몰 구현 (요청 파라미터1)  (0) 2024.01.07
[SPRING]#10 도서 쇼핑몰 구현 (매트릭스 변수2)  (0) 2024.01.06
'SPRING' 카테고리의 다른 글
  • [SPRING]#15 도서 쇼핑몰 구현 (데이터 바인딩1)
  • [SPRING]#14 도서 쇼핑몰 구현 (스프링 폼 태그2)
  • [SPRING]#12 도서 쇼핑몰 구현 (요청 파라미터2)
  • [SPRING]#11 도서 쇼핑몰 구현 (요청 파라미터1)
아모사
아모사
혼자서 공부, 정리 하는 공간
  • 아모사
    아무것도 몰라요
    아모사
  • 전체
    오늘
    어제
    • 분류 전체보기 (211)
      • DJANGO (10)
        • Django REST (10)
      • 알고리즘 (36)
      • JAVA (16)
      • JSP (2)
      • SPRING (98)
      • GIT (14)
      • CS_운영체제 (8)
      • CS_네트워크 (6)
      • 취업관련 (0)
      • CS_데이터베이스 (6)
      • CS_디자인 패턴 (6)
      • 면접 대비 (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
아모사
[SPRING]#13 도서 쇼핑몰 구현 (스프링 폼 태그1)
상단으로

티스토리툴바