카테고리 없음
ReturnController
Handy Smurf
2020. 8. 25. 17:34
return type void
package org.zerock.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import lombok.extern.log4j.Log4j;
@Controller
@RequestMapping("/ret")
@Log4j
public class ReturnController {
@RequestMapping("/a")
public void methoda() {
log.info("a method");
}
}
요청한 경로로 JSP파일을 찾는다
Servlet-context.xml
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
/WEB-INF/views/ ret/a .jsp"
ret앞뒤
WEB-INF/views/ret/a.jsp
view > rel > a.jsp create
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p>a.jsp로 포워드 됨</p>
</body>
</html>
return type String
@RequestMapping("/b")
public String methodb() {
log.info("b method");
return "b";
}
a.jsp 포워드
@RequestMapping("/b")
public String methodb() {
log.info("b method");
return "/ret/a";
}
@RequestMapping("/c")
public String methodc() {
log.info("c method");
return "hello world";
}
@ResponseBody (내용이 몸체가 됨)
@RequestMapping("/c")
@ResponseBody
public String methodc() {
log.info("c method");
return "hello world";
}
@RequestMapping("/d")
public String methodd(Model model) {
log.info("d method");
model.addAttribute("myAttr", "my-val");
return "/ret/a";
}
@RequestMapping("/e")
public String methode(Model model) {
log.info("e method");
Member member = new Member();
member.setName("joth");
member.setAge(999);
model.addAttribute("mem", member);
return "/ret/a";
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p>a.jsp로 포워드 됨</p>
<p>d : $ {myAttr}</p>
<p>e : $ {mem.name}, ${mem.age} </p>
</body>
</html>
@RequestMapping("/f")
public String methodf(Model model) {
log.info("f method");
Member member = new Member();
member.setName("seoul");
member.setAge(1000);
model.addAttribute(member);
return "/ret/a";
}
@RequestMapping("/g")
public String methodg(Model model) {
log.info("g method");
String[] strs = new String[]{"seoul", "jeju", "korea"};
model.addAttribute("cities", strs);
return "/ret/b";
}
@RequestMapping("/h")
public String methodh(Model model) {
log.info("h method");
Member m1 = new Member();
m1.setName("seoul");
m1.setAge(22);
Member m2 = new Member();
m2.setName("korea");
m2.setAge(33);
//배열
Member[] members = new Member[] {m1, m2};
//model.addAttribute("memberList", members);
//list
List<Member> members2 = new ArrayList<>();
members2.add(m1);
members2.add(m2);
//model.addAttribute("memberList", members2);
model.addAttribute(members2
);
return "/ret/b";
}
}
<p>/f : ${member.name }, ${member.age }</p>
<div>
/g : <br />
<ol>
<c:forEach items="${cities }" var="city">
<li>${city }</li>
</c:forEach>
</ol>
</div>
<div>
<p>/h</p>
<table class="table">
<tr>
<th>name</th>
<th>age</th>
</tr>
<c:forEach items="${memberList }" var="member">
<tr>
<td>${member.name }</td>
<td>${member.age }</td>
</tr>
</c:forEach>
</table>
</div>
/i?name=jeju
// /i?name=jeju
@RequestMapping("/i")
public String methodi(@ModelAttribute("name") String name) {
log.info("i method");
log.info(name);
return "/ret/c";
}
c.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
<script src="https://kit.fontawesome.com/a076d05399.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
<title>Insert title here</title>
</head>
<body>
<p>i: ${name}</p>
</body>
</html>
http://localhost:1234/ret/i?name=dododo
// /j?name=jeju&age=33
@RequestMapping("/j") //medel을 붙이지 않아도 모델로 등록이 된다.
public String methodi(Member member) {
log.info("i method");
return "/ret/c";
}
<p>j: ${member.name}, ${member.age}</p>
http://localhost:1234/ret/j?name=jeju&age=88
// /k?name=seoul&age=77
@RequestMapping("/k") //medel을 붙이지 않아도 모델로 등록이 된다.
public String methodk(@ModelAttribute("mem")Member member) {
log.info("k method");
return "/ret/c";
}
<p>k: ${mem.name}, ${mem.age}</p>
Emmet 설치하기 (jsp, html 축약)
https://github.com/emmetio/emmet-eclipse
emmetio/emmet-eclipse
Emmet for Eclipse. Contribute to emmetio/emmet-eclipse development by creating an account on GitHub.
github.com