출처 : 스프링3(Spring3)MVC 연동 (3) - 서버값 웹페이지로 전송하기 :: 야근싫어하는 개발자
파라미터 전달 (클라이언트 -> 서버)
java 소스
@RequestMapping(value = "/sum_result1.iot", method = RequestMethod.GET)
public String sum_result1(
@RequestParam("param1") int param1,
@RequestParam("param2") int param2,
ModelMap modelMap
)
Get 파라미터 전달
http://localhost:7070/IotWebServer/sum_result1.iot?param1=2¶m2=3
서버값 클라이언트에 전달 (서버 -> 클라이언트)
java 소스 - TestController.java
package com.iot.ui.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class TestController {
@RequestMapping(value = "/sum_result1.iot", method = RequestMethod.GET)
public String sum_result1(
@RequestParam("param1") int param1,
@RequestParam("param2") int param2,
ModelMap modelMap
)
{
// 결과값
int sum_value = param1 + param2;
// Model에 값 설정
modelMap.addAttribute("param1", param1);
modelMap.addAttribute("param2", param2);
modelMap.addAttribute("sum_value", sum_value);
// 전달 할 jap 페이지
return "sum_result1";
}
}
jsp 소스 - sum_result1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
</head>
<body>
스프링 테스트<br/><br/>
${param1} 더하기 ${param2} (은/는) ${sum_value} 입니다.
</body>
</html>
결과

@ResponseBody 어노테이션
출처 : @ResponseBody 이해하기
@ResponseBody 로 어노테이션이 되어 있다면 메소드에서 리턴되는 값은 View 를 통해서 출력되지 않고 HTTP Response Body 에 직접 쓰여지게 됩니다.
java 소스
@ResponseBody
@RequestMapping(value="/sum_result_body.iot", method = RequestMethod.GET)
public String sum_result_body(
@RequestParam("param1") int param1,
@RequestParam("param2") int param2
) throws Exception
{
return param1 + " + " + param2 + " = " + (param1 + param2);
}
결과

@RequestParam 어노테이션
출처 : [Spring 3 - @MVC] @Controller #2 - 파라미터와 리턴 타입의 종류
옵션
- value : 파라미터명
- required : 필수 여부
- defaultValue : required가 false인 경우 값이 없는 경우 기본값
java 소스
@RequestMapping(value = "/sum_result2.iot", method = RequestMethod.GET)
public String sum_result2(
@RequestParam("param1") int param1,
@RequestParam(value="param2", required=false, defaultValue="0") int param2,
ModelMap modelMap
)
{
// 결과값
int sum_value = param1 + param2;
// Model에 값 설정
modelMap.addAttribute("param1", param1);
modelMap.addAttribute("param2", param2);
modelMap.addAttribute("sum_value", sum_value);
// 전달 할 jap 페이지
return "sum_result1";
}
결과

domain 객체 클라이언트에 전달 (서버 -> 클라이언트)
출처 : 뜬금없는 도메인 오브젝트의 발전사
java 소스 도메인 객체 - SumValueDomain.java
package com.iot.domain;
public class SumValueDomain {
private int value1;
private int value2;
}
get, set 메소드 생성


메소드 추가
public int getSumValue() {
return this.value1 + this.value2;
}
java 소스 도메인 객체 최종소스 - SumValueDomain.java
package com.iot.domain;
public class SumValueDomain {
private int value1;
private int value2;
public int getValue1() {
return value1;
}
public void setValue1(int value1) {
this.value1 = value1;
}
public int getValue2() {
return value2;
}
public void setValue2(int value2) {
this.value2 = value2;
}
public int getSumValue() {
return this.value1 + this.value2;
}
}
java 소스
@RequestMapping(value = "/sum_result3.iot", method = RequestMethod.GET)
public String sum_result3(
@RequestParam("param1") int param1,
@RequestParam(value="param2", required=false, defaultValue="0") int param2,
ModelMap modelMap
)
{
// 도메일 객체 생성
SumValueDomain sum_value = new SumValueDomain();
// 값 설정
sum_value.setValue1(param1);
sum_value.setValue2(param2);
// Model에 도메일 객체 전달
modelMap.addAttribute("sum_value", sum_value);
// 전달 할 jap 페이지
return "sum_result3";
}
jsp 소스 - sum_result3.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
</head>
<body>
스프링 테스트<br/><br/>
${sum_value.value1} 더하기 ${sum_value.value2} (은/는) ${sum_value.getSumValue()} 입니다.
</body>
</html>
결과

domain 객체 서버에 전달 (클라이언트 -> 서버)
domain 객체를 spring 프레임워크에서 제공되는 form 테그 라이브러리를 사용해서 jsp에 전달했다가 다시 form 테그를 이용해서 서버의 controller에 전달하는 과정
java 소스 - Form jsp 호출
@RequestMapping(value = "/sum_form.iot", method = RequestMethod.GET)
public String sum_form(ModelMap modelMap) {
// 도메일 객체 생성
SumValueDomain sum_value = new SumValueDomain();
// Model에 도메일 객체 전달
modelMap.addAttribute("sum_value", sum_value);
// 전달 할 jap 페이지
return "sum_form";
}
jsp 소스 - sum_form.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<html>
<head>
</head>
<body>
<form:form modelAttribute="sum_value" action="sum_result4.iot" method="POST">
<p>
값1<br/>
<form:input path="value1"/>
</p>
<p>
값2<br/>
<form:input path="value2"/>
</p>
<p>
<input type="submit" value="Submit">
</p>
</form:form>
</body>
</html>
결과 - Form jsp

java 소스 - Form 에서 submit 호출 받는 메소드
@RequestMapping(value = "/sum_result4.iot", method = RequestMethod.POST)
public String sum_result4(SumValueDomain domain, ModelMap modelMap)
{
int sum_value = domain.getValue1() + domain.getValue2();
modelMap.addAttribute("param1", domain.getValue1());
modelMap.addAttribute("param2", domain.getValue2());
modelMap.addAttribute("sum_value", sum_value);
// 전달 할 jap 페이지
return "sum_result1";
}
결과
