Spring

[Spring] 기본 설명

allempty_sheep 2024. 8. 27. 16:25
반응형

스프링 동작 순서

 

 

메인 페이지에서 나오는 시간은 어디에 설정 되어 있는 것일까 확인 해 보자.

 

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";
	}
	
}

 

 

기본적인 활용 방법을 알았으면 문제를 하나 더 풀어 보자.