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