TestController.java
package edu.global.ex.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class TestController {
@GetMapping("/test") // test로 진입하면
public String test() {
return "test"; // test.jsp 실행
}
@GetMapping("/test2") // test2로 진입하면
public String test2() {
return "test/test2"; // test 폴더 밑의 test2.jsp 실행
}
@GetMapping("/test/test3") // test/test3로 진입하면
public String test3() {
return "test/test3"; // test 폴더 밑의 test3.jsp 실행
}
@RequestMapping("/test4") // test4로 진입하면
public String test4() {
return "test/test4"; // test 폴더 밑의 test4.jsp 실행
}
}
BoardController.java
package edu.global.ex.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@RequestMapping("/board")
@Controller
public class BoardController {
@GetMapping("/")
public String main() {
return "board/main";
}
@GetMapping("/content")
public String content() {
return "board/content";
}
}
BoardController.java
package edu.global.ex.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@RequestMapping("/board")
@Controller
public class BoardController {
/* 이어서 작성 */
@GetMapping("/content_view")
public String content_view(Model model) {
model.addAttribute("id", 30);
model.addAttribute("pw", 1234);
return "board/content";
}
@GetMapping("/reply")
public ModelAndView model_view() {
ModelAndView mv = new ModelAndView();
mv.addObject("id", 50);
mv.setViewName("board/reply");
return mv;
}
}
Content.jsp (경로에 맞게 작성)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>content</title>
</head>
<body>
게시판 콘텐츠 페이지 입니다.<br>
${id}<br> ${pw}<br>
</body>
</html>
GradeController.java
package edu.global.ex.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@RequestMapping("/grade")
@Controller
public class GradeController {
@GetMapping("/")
public String kem_form() {
return "kem_form";
}
}
kem_form.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>KEM_Form</title>
<style>
form {
width: 250px;
border: 1px solid #333;
padding: 20px;
}
</style>
</head>
<body>
<form action="/grade/total" method="get">
국어 : <input type="text" name="kor" /><br />
영어 : <input type="text" name="eng" /><br />
수학 : <input type="text" name="math" /><br />
<button type="submit">입력</button>
<button type="reset">취소</button>
</form>
</body>
</html>
grade.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
총점 : ${ total }<br />
평균 : ${ avg }<br />
</body>
</html>
GradeController.java (@PostMapping 이 들어간 함수 추가)
@PostMapping("/total")
public String kem_form_post(HttpServletRequest request, Model model) {
int kor = Integer.valueOf(request.getParameter("kor"));
int eng = Integer.valueOf(request.getParameter("eng"));
int math = Integer.valueOf(request.getParameter("math"));
int total = kor + eng + math;
double avg = total / 3.0;
model.addAttribute("total", total);
model.addAttribute("avg", avg);
return "grade";
}
GradeVO.java
package edu.global.ex.vo;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class GradeVO {
private int kor;
private int eng;
private int math;
public int getTotal() {
return kor + eng + math;
}
public double getAvg() {
return getTotal() / 3.0;
}
public char getGrade() {
char ch = '가';
if (getAvg() >= 90) {
ch = '수';
} else if (getAvg() >= 80) {
ch = '우';
} else if (getAvg() >= 70) {
ch = '미';
} else if (getAvg() >= 60) {
ch = '양';
} else {
ch = '가';
}
return ch;
}
}
GradeController.java
@PostMapping("/total")
public String kem_form_post(HttpServletRequest request, Model model) {
int kor = Integer.valueOf(request.getParameter("kor"));
int eng = Integer.valueOf(request.getParameter("eng"));
int math = Integer.valueOf(request.getParameter("math"));
GradeVO grade = new GradeVO(kor, eng, math);
model.addAttribute("grade", grade);
return "grade";
}
grade.jsp (출력하는 결과 화면을 바꾼다.)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<h2>camelCase 출력</h2>
총점 : ${ grade.getTotal() }
<br /> 평균 : ${ grade.getAvg() }
<br /> toString : ${ grade.toString() }
<br /> 학점 : ${ grade.getGrade() }
<hr />
<h2>parameter 출력</h2>
총점 : ${ grade.total }
<br /> 평균 : ${ grade.avg }
<br /> 학점 : ${ grade.grade }
<br />
</body>
</html>
GradeController.java (함수 추가)
@PostMapping("/total2")
public String kem_form_post2(GradeVO grade, Model model) {
model.addAttribute("grade", grade);
return "grade";
}