메인 페이지에서 나오는 시간은 어디에 설정 되어 있는 것일까 확인 해 보자.
src/main/java 에 있는
HomeControoler.java 에 들어가 보자.
기본 홈 컨트롤러(Front Controller)가 어노테이션을 사용하여 지정 되어있고
@RequestMapping 어노테이션을 보면 다음 과 같은 내용이 있다.
home 메소드가
locale 지역 정보를 받고, 시간을 생성하여 model 객체에 담아 home 으로 return 해준다.
// 클라이언트 요청 처리 어노테이션 value=url, method=전송방식
// Model: jsp 로 매개변수를 전달하는 객체 request 에 해당한다. Scope 객체는 PageContext, request, session, application 4가지가 있다.
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.info("Welcome home! The client locale is {}.", locale);
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
model.addAttribute("serverTime", formattedDate );
return "home";
}
return "home";
은 views 에 home.jsp 를 가르키고 있다.
이는 아래 경로에 있는 servlet-context.xml 에서 가르키고 있는데
InternalResouceViewResolver 의 설정은 아래와 같다.
prefix = 접두사
suffix = 접미사
그렇다면 접두사 + return 값 + 접미사 가 되어
경로는
/WEB-INF/views/home.jsp 가 자동으로 설정되는 것이다.
이를 이용하여 아래 문제를 풀어보자.
1.ExampleController.java 생성
- Controller 기능 수행
- 다른 jsp로 속성 3개 전달
속성명: name => 홍길동
속성명: age => 25
속성명: addr => 부산시 동래구
2.views 폴더의 student.jsp가 실행되도록
한다.
실행 URL
http://localhost:8081/studentInfo
출력결과
학생 정보
이름: 홍길동
나이: 25세
주소: 부산시 동래구
두가지 파일을 생성 해야한다.
views 폴더 아래에 student.jsp
src/main/java 폴더 아래에 ExampleController.java
파일이다.
결과
student.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
<title>student</title>
</head>
<body>
<h1>
Hello student!
</h1>
<P> name is ${name}. </P>
<P> age is ${age}. </P>
<P> addr is ${addr}. </P>
</body>
</html>
ExampleController.java
package org.bigdata.controller;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class ExampleController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
/**
* Simply selects the home view to render by returning its name.
*/
@RequestMapping(value = "/studentInfo", method = RequestMethod.GET)
public String student(Locale locale, Model model) {
String name = "홍길동";
String age = "25세";
String addr = "부산시 동래구";
logger.info("Welcome student! The client name is {}.", name);
model.addAttribute("name", name );
model.addAttribute("age", age );
model.addAttribute("addr", addr );
return "student";
}
}
기본적인 활용 방법을 알았으면 문제를 하나 더 풀어 보자.
'Spring' 카테고리의 다른 글
[Spring] 데이터베이스 연습 ( feat. mariadb, HikariCP) (0) | 2024.08.29 |
---|---|
[Spring] 데이터 베이스 연결 (feat. MariaDB, HikariCP) (0) | 2024.08.29 |
[Spring] Lombok 설정 및 사용. (0) | 2024.08.28 |
[Spring] STS3 기본 세팅 (0) | 2024.08.27 |
[Spring] Spring Boot + JSP + Gradle + IntelliJ (0) | 2024.06.27 |