-
Springframework <form:form> 이란?Spring 2020. 4. 20. 15:15728x90반응형
*도움이 되셨다면 광고 한번 클릭 부탁드립니다! 제게 큰 힘이됩니다!
1.<form:form> 이란?
전자정부프레임워크에 올인원패키지를 뜯어보면 <form:form>이라는 구문을 많이 볼수있다.
그렇다면 이 <form:form>은 무엇일까?
<form:form>은 HTML 폼에 데이터를 바인딩하거나 또는 에러메세지 처리등을 간편하게 해준다.
form 태그라이브러리를 사용하기위해선 아래와 같은 태그를 jsp 내부 상단 삽입하여 사용해야한다.
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
또한 form 태그는 세가지 속성값을 입력해야한다.
commandName(스프링 5버전 = modelAttribute) ,action(보낼 URL),ㅡmethod(POST) 등을 입력해야한다.
예를들어 호출을 하였을때 URL이 /bbs/boardlist.do 라고 가정한다면
<form:form commandName="boardVO"></form:form>
위에 코드를 HTML form 구문으로 바꾸면 아래와 같은 코드로 전송되는 것이다.
<form id="boardVO" action="/bbs/boardlist.do" method="post"></form>
현재 정부프레임워크 올인원패키지를 보면 대부분 form:form을 사용하고 있다.
웹 어플리케이션 코드에 아래와 같은 컨트롤러가 있을경우
@RequestMapping("/adm/bbs/insertArticleView.do") public String insertNoticeView(@ModelAttribute("searchVO") BoardVO boardVO, ModelMap model) throws Exception { LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); BoardVO board = new BoardVO(); if(!isAuthenticated) { return "/uat/uia/egovLoginUsr.do"; } model.addAttribute("articleVO", boardVO); return "/mvs/adm/bbs/ArticleRegister"; }
jsp에서 아래와 같이 commandName = 컨트롤러 addAttribute("articleVO") 처럼 받아서 사용해 줘야하며,
input 이나 textarea는 path라는 태그에 vo와 이름을 매칭시켜서 데이터를 전송한다.
<form:form commandName="articleVO" action="${pageContext.request.contextPath}/adm/bbs/insertArticle.do" method="post" enctype="multipart/form-data"> <table class="table table-striped" style="text-align: center; border: 1px solid #dddddd"> <thead> <tr> <th colspan="2" style="background-color: #eeeeee; text-align: center;">게시판 글쓰기 양식</th> </tr> </thead> <tbody> <tr> <td><form:input path="nttSj" class="form-control" placeholder="글 제목" name="nttsj" maxlength="50"/></td> </tr> <tr> <td><form:textarea path="nttCn" class="form-control" placeholder="글 내용" name="nttCn" maxlength="2048" style="height: 350px;"/></td> </tr> </tbody> </table> <span><input type="submit" class="btn btn-primary pull-right" value="글쓰기"/></span> <input type="hidden" name="bbsId" value="<c:out value='${articleVO.bbsId}'/>"> </form:form>
컨텍스트 패스를 URL 앞단에 자동으로 붙이기 위해선 <c:url>태그를 사용하고,
스프링 form 태그의 action 속성dpsms <c:url> 태그를 사용할수없어서
위 jsp 처럼 ${pageContext.request.contextPath}를 붙여 사용한다.
728x90반응형'Spring' 카테고리의 다른 글
[스프링(Spring)] 스프링이란 무엇인가!? -1 (0) 2021.02.19 POJO란 도대체 무엇인가? (0) 2020.04.22 mybatis framework를 알아보자 (0) 2020.04.06 자바 bean ?? 클래스란 (0) 2020.04.03 스프링 MVC 커맨드 객체란 ?? (0) 2020.04.03