내용

글번호 562
작성자 heojk
작성일 2017-02-10 09:58:59
제목 [실습] Spring Web MVC를 이용하여 작성해 보세요.
내용 1. ICalcService 인터페이스를 작성합니다. package kr.co.javaspecialist.calc.service; public interface ICalcService { int add(int a, int b); int sub(int a, int b); int mul(int a, int b); int div(int a, int b); } 2. CalcService 클래스를 구현합니다.(@Service 아노테이션 추가) package kr.co.javaspecialist.calc.service.impl; import org.springframework.stereotype.Service; import kr.co.javaspecialist.calc.service.ICalcService; @Service public class CalcService implements ICalcService { public int add(int a, int b) { return a + b; } public int sub(int a, int b) { return a - b; } public int mul(int a, int b) { return a * b; } public int div(int a, int b) { return a / b; } } 3. application-config.xml에 CalcService 클래스의 패키지를 <context:component-scan /> 설정 <context:component-scan base-package="kr.co.javaspecialist.calc.service" /> 4. CalcController 클래스 작성(@Controller 아노테이션 추가) package kr.co.javaspecialist.calc.web; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import kr.co.javaspecialist.calc.service.ICalcService; @Controller public class CalcController { } 5. mvc-config.xml 에 CalcController 클래스 패키지 컴포넌트 스캔 설정 <context:component-scan base-package="kr.co.javaspecialist.calc.web" /> 6. CalcController 클래스에 ICalcService 의존성 설정 추가 @Autowired ICalcService calcService; 7. 컨트롤러 메서드 추가 @RequestMapping("/calc/add") public String add(int a, int b, Model model) { int result = calcService.add(a, b); model.addAttribute("result", result); return "calc/result"; }//http://localhost:8080/SpringWebMVC/calc/add?a=10&b=20 8. WEB-INF/view/result.jsp 파일 작성 ${result} 9. PathVariable 사용 @RequestMapping("/calc/sub/{a}/{b}") public String sub(@PathVariable int a, @PathVariable int b, Model model) { int result = calcService.sub(a, b); model.addAttribute("result", result); return "calc/result"; }//http://localhost:8080/SpringWebMVC/calc/sub/30/20 10. WEB-INF/view/mulform.jsp 파일 작성 <%@ page contentType="text/html; charset=EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <h1>곱샘하려는 두 숫자 값을 입력하세요</h1> <form action="mul" method="post"> 숫자 1 : <input type="number" name="a"><br> 숫자 2 : <input type="number" name="b"><br> <input type="submit" value=" 곱셈하기 "> </form> </body> </html> 11. mulform.jsp 페이지 요청 @RequestMapping(value="/calc/mul", method=RequestMethod.GET) public String mul() { return "calc/mulform"; } 12. mulform.jsp 페이지 처리 @RequestMapping(value="/calc/mul", method=RequestMethod.POST) public String mul(int a, int b, Model model) { int result = calcService.mul(a, b); model.addAttribute("result", result); return "calc/result"; } 13. View Controller를 이용한 폼 요청 설정 <mvc:view-controller path="/calc/divform" view-name="calc/divform" /> 14. WEB-INF/view/calc/divform.jsp 작성 <%@ page contentType="text/html; charset=EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <h1>나눗셈하려는 두 숫자 값을 입력하세요</h1> <form action="div" method="post"> 숫자 1 : <input type="number" name="a"><br> 숫자 2 : <input type="number" name="b"><br> <input type="submit" value=" 나누기 "> </form> </body> </html> 15. /calc/div 처리하는 컨트롤러 작성 @RequestMapping(value="/calc/div", method=RequestMethod.POST) public String div(int a, int b, Model model) { int result = calcService.div(a, b); model.addAttribute("result", result); return "calc/result"; }