728x90
CSV : comma Seperated value  > a , b, c

파일명 : YoilTellerMVC.java

1. 매핑된 URL에 의해서 view 결정:
    @RequestMapping("getYoilMVC")
    public void main(int year, int month , int day, Model model) {return 없음}  
        => void , return 없음
        => http://localhost:8080/ch2/getYoilMVC?year=2021&month=12&day=2
        => view( getYoilMVC.jsp ) 

2. ModelAndView : 모델과 view 같이 넘김
     ModelAndView mv = new ModalAndView();
     mv.addObject("year", year);
     mv.setViewName("yoil");

3. MVC 패턴 : 아래 사진 참조

★ 분리
  - 관심사 분리
  - 변하는것, 자주 변하지 않는것( Common )
  - 중복코드

★ SOLID 관심사의 분리
1. S : 하나의 메서드는 하나의 책임만

[ Reflection API ]

@RequestMapping( value="/register/save" , method= RequestMethod.POST )
@PostMapping("/register/save") // 4.3부터
@GetMapping("/register/add")

 

[ log4j.xml ]

@Controller
public class HomeController {
    
    private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
    
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Locale locale, Model model) {
 
        logger.trace("> trace : {}, {}.", locale, "Hello");
        logger.debug("> debug: {}.", locale);
        logger.info("> info : {}.", locale);
        logger.warn("> warn : {}.", locale);
        logger.error("> error : {}.", locale);
 
        return "home";
    }
}

 

[ servlet-context.xml ]

return "yoil";   /WEB-INF/view/yoil.jsp  이 되는 이유

	<resources mapping="/resources/**" location="/resources/" />

	<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>
 
만약 servlet-context.xml 에 아래 유형의 코드를 작성한다면

전송 방식은 GET 방식만 가능하다.

<view-controller path="/register/add" view-name="registerForm" />
 

 

[ pom.xml ]

자바 버전은 11로 변경하고

<properties>
    <java-version>11</java-version>
    <org.springframework-version>5.0.7.RELEASE</org.springframework-version>
    <org.aspectj-version>1.6.10</org.aspectj-version>
    <org.slf4j-version>1.6.6</org.slf4j-version>
</properties>

1.6  >  ${java-version} 으로 변경하여 버전에 종속되지 않도록 한다.

<configuration>
    <source>${java-version}</source>
    <target>${java-version}</target>
    <compilerArgument>-Xlint:all</compilerArgument>
    <showWarnings>true</showWarnings>
    <showDeprecation>true</showDeprecation>
</configuration>

 

[ web.xml ]

<!-- 한글 변환 필터 시작 -->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<!-- 한글 변환 필터 끝 -->

 

STS 개발하다보면 알수없는 문제들이 발생하는데
대부분 우리가 프로젝트에서 사용하고 있는, 의존하고 있는 모듈간에 충돌로 인해 문제가 발생
하는 데 STS를 닫고 repository 폴더를 통채로 날리고 Maven 업데이트 하면 된다.

 
 
 

 

728x90

+ Recent posts