ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Form 요소1
    웹페이지 제작을 위한 스프링공부 2020. 5. 4. 14:05

    1.Form 커스텀 태그를 사용하면 사용자 입력폼을 만들 수 있다.(사용자 입력폼을 그냥 만드는 것이 아닌 request영역에 담겨서 넘어오는 객체에 셋팅되어져 있는 다양한 값들을 form요소(input tag)등에 바인딩 시켜서 만들 수 있음)

    2.주로 정보 수정 페이지를 구성할 때 사용.

     

     

    form 태그들과 속성 사이트

    https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/spring-form-tld.html

     

    43. spring-form JSP Tag Library

    Renders a list of HTML 'option' tags. Sets 'selected' as appropriate based on bound value. Table 43.10. Attributes AttributeRequired?Runtime Expression?DescriptioncssClassfalsetrueEquivalent to "class" - HTML Optional AttributecssErrorClassfalsetrueEquival

    docs.spring.io

     

    Form태그란

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    	<a href='test1'>test1</a>
    	<form:form></form:form>
    </body>
    </html>

     다음과 같이 Form태그에 아무것도 기입하지 않고 선언만 해두었다

    그후 본 페이지의 페이지 소스 보기를 실행시켜본다

     그럼 위와 같이 기입하지 않은 태그 속성들이 저절로 기입되어져 있는것을 볼 수 있다. 

    form태그는 이러한 역활을 저절로 수행해준다

     

    modelAttribute

    request영역에 저장되어 있는 객체의 이름을 model attribute에 셋팅해주면 그 이름이 id속성으로 설정되기도 하고 그 객체안에 들어가있는 값들이 form태그의 input속성에 자동으로 기입된다.

     

    action

    요청할 주소 설정

     

    method

    요청 방식 설정

     

    Form:hidden 태그

    hidden 태그는 주로 사용자에게 노출시키지 않고 개발단에서 특정 정책에 의해 액션을 취할때 사용

     

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    	<h1>test1</h1>
    	<form:form modelAttribute="dataBean" action='result'>
    		<form:hidden path="a1"/>
            <form:button disabled="true">확인 버튼</form:button>
    	</form:form>
    </body>
    </html>

    modelAttribute에 dataBean이 들어가있다 이때 위와 같이 path를 a1으로 지정해주면 medelAttribute에 저장된 객체에 들어가 있는 a1에 들어있는 값을 주입시켜줌(정확하게는 dataBean의 geta1 메소드를 호출하여 반환하는 값을 주입해주는 원리)

     

     

    package kr.co.softcampus.beans;
    
    public class DataBean {
    	private String a1;
    
    	public String getA1() {
    		return a1;
    	}
    
    	public void setA1(String a1) {
    		this.a1 = a1;
    	}
    
    }
    
    package kr.co.softcampus.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    
    import kr.co.softcampus.beans.DataBean;
    
    @Controller
    public class TestContoller {
    	
    	@GetMapping("/test1")
    	public String test1(DataBean bean) {//modelattribute를 생략시 dataBean란 이름으로 request에 저장됨
    		
    		bean.setA1("data1");
    	
    		return "test1";
    	}
    }
    

    a1에 data1이라는 값을 넣음

     

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    	<h1>test1</h1>
    	<form:form modelAttribute="dataBean" action='result'>
    		<form:hidden path="a1"/>
            <form:button disabled="true">확인 버튼</form:button>
    	</form:form>
    </body>
    </html>

    실행후 위 jsp의 페이지 소스보기를 실행하면 아래 사진과 같이 다음과같이 개발자가 입력하지 않은 태그 속성들이 자동 기입되며 value값에 data1이 잘 기입된걸 볼 수 있다.

     

     

     

    Form:input 태그

    Form:password 태그

     

    Form:textarea 태그

    설명란 같은 긴 글을 작성할때 사용하는 태그

     

    '웹페이지 제작을 위한 스프링공부' 카테고리의 다른 글

    redirect forward  (0) 2020.05.04
    Form 요소2  (0) 2020.05.04
    form 태그  (0) 2020.05.03
    커맨드 객체 이용하기  (0) 2020.05.02
    viewResolver  (0) 2020.05.02
Designed by Tistory.