• 분류 전체보기 (160)
    • 개인프로젝트 (5)
      • 시연영상모음 (4)
      • 주저리주저리.. (1)
    • 자바스크립트이야기 (69)
      • ExtJS (30)
      • ExtJS 유의사항 (3)
      • HTML5 (1)
      • jQuery (17)
      • jQuery플러그인소개 (9)
      • jQuery UI 소개 (9)
    • 스프링연동하기 (23)
      • spring3 mvc 설정 (4)
      • spring3 mybatis 설정 (4)
      • spring3 기타설정 (11)
      • ibatis and mybatis (4)
    • DB (26)
      • MySQL vs MS-SQL vs O.. (5)
      • MySQL (10)
      • MSSQL (5)
      • Oracle (6)
    • 서버에웹환경구축하기 (13)
      • 1.VirtualBox+CentOS .. (5)
      • 2.JAVA(JDK) 설치 (1)
      • 3.Apache+Tomcat 설치 (3)
      • 4,SVN Server 설치 (1)
      • 5.마리아DB(MariaDB) 설치 (2)
      • 6.몽고DB(MongoDB)설치 (1)
    • 샘플소스 (14)
      • 샘플소스(JAVA) (7)
      • 샘플소스(JSTL) (4)
      • 샘플소스(jQuery/스크립트) (3)
    • 에디터연동 (5)
      • NAVER-스마트에디터 (4)
      • DAUM-다음에디터 (1)
    • 블로그팁 (3)
    • 디지털이야기 (2)
댓글
/107
2014. 7. 22. 17:07
스프링3(Spring3) MVC 연동 (2) - 폼값 전송 + 인코딩 설정

이번시간에는 


클라이언트 -> 서버로 값 전달하기를 다루어 보도록 하겠다.


우리는 보통 클라이언트 -> 서버로 값들을 전달하였을때 

request.getParameter("파라미터명")으로 값전달을 했었을 것이다.


스프링에서 위와 같은 방식으로도 값을 받아도 동일하게 받을 수 있지만

만약 여러 값을 받을경우에 model 클래스를 하나 생성해서 그안에다가 변수 선언 + getter / setter을 정의해주는 방법으로도 값을 서버에서 

받을 수 있을 것이다.


우선은 테스트를 위하여 기본 html 폼화면을 출력하는 컨트롤러+jsp페이지와 값 전달을 위한 request컨트롤러 하나를 만들어 보도록 하겠다.


연동 소스는 이전 시간에 생성했던 프로젝트에 이어서 작성하기로 하겠음.


1. 기본 폼화면(컨트롤러명 : /form, jsp 파일명 : form.jsp)


기존소스인 HelloWorld 클래스에 다음과 같은 컨트롤러를 맵핑해주도록 하자


@RequestMapping("/form")
public String form(){
	return "form";
}

이어서 WEB-INF -> view 디렉토리에 form.jsp를 생성해주고 다음과 같이 코드를 작성해보도록 

하자


<form action="/request" method="post">
	제목 : <input type="text" name="title"/>
	<br/>
	내용 : <textarea rows="10" cols="50" name="content"></textarea>
	<br/>
	<input type="submit" value="서버전달"/>
</form>


submit버튼 클릭시, 소스내에 form안에 정의한 값들을 받기위해  form action의 값인 /request명으로 컨트롤러 맵핑해주도록 하자


2. 클라이언트 -> 서버로 값 확인하기 위한 컨트롤러

* 두가지 방식으로 예를 들 수 있겠다. 

   일반적인 request.getparameter로 값 전달 받는방법과 model 클래스 생성하여 폼의 name

   명칭으로 맞춰주는 방식이 있다.


1) request.getParameter로 값 전달받기

@RequestMapping("/request")
public void request(HttpServletRequest request){
	System.out.println("제목:"+request.getParameter("title"));
	System.out.println("내용:"+request.getParameter("content"));		
}


2) model 클래스생성하여 값 전달받기

현재 com.spring.web패키지내에 model 패키지를 생성해준후 생성 패키지에 Model.java 클래스를 생성 후 다음과 같이 선언을 해주도록 하겠다.


 - RequestModel.java - 

package com.spring.web.model;

public class RequestModel {
	private String title;
	private String content;
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
}


다음 기존 /request  맵핑된 컨트롤러를 약간 수정해보도록 하자

@RequestMapping("/request")
public void request(RequestModel model){
	System.out.println("제목:"+model.getTitle());
	System.out.println("내용:"+model.getContent());
		
}


본인의 경우 실행시, 화면이 깨졌다.





인코딩설정이 안맞아서 그런거 같다.


이클립스 및 web.xml 인코딩 설정을 해주도록 하자


* 이클립스 인코딩 설정











* 스프링 인코딩 설정


web.xml 의 servlet-mapping 다음태그에 추가해보도록 하자

<filter>
    	<filter-name>encodingFilter</filter-name>
    	<filter-class>
			org.springframework.web.filter.CharacterEncodingFilter
	</filter-class>
   	<init-param>
      		<param-name>encoding</param-name>
      		<param-value>UTF-8</param-value>
    	</init-param>
</filter>
<filter-mapping>
    	<filter-name>encodingFilter</filter-name>
    	<url-pattern>/*</url-pattern>
</filter-mapping>



다시 실행해보도록 하자 




한글값까지 정상적으로 넘어왔다.

이번시간에는 클라이언트의 값을 서버로 전달하였다면, 

다음포스팅에는 서버값을 클라이언트로 전달해보도록 하겠다.





슈퍼맨슈퍼맨슈퍼맨



도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!

저작자표시 (새창열림)

'스프링연동하기 > spring3 mvc 설정' 카테고리의 다른 글

스프링3(Spring3) MVC 연동 (4) - 서버에 파일전송  (0) 2014.07.22
스프링3(Spring3)MVC 연동 (3) - 서버값 웹페이지로 전송하기  (0) 2014.07.22
스프링3(Spring3) MVC 연동 (1) - STS 다운로드 및 헬로월드 출력하기  (6) 2014.07.22

티스토리툴바