Home
>
Spring
>
π[Spring] Spring MVCμμ `View` κ°μ²΄.
Spring
Framework
π[Spring] Spring MVCμμ View
κ°μ²΄.
1οΈβ£ View
κ°μ²΄.
Spring MVCμμ View
κ°μ²΄λ ν΄λΌμ΄μΈνΈμκ² μλ΅μ μμ±νλ λ° μ¬μ©λλ μ΅μ’
μΆλ ₯μ λ΄λΉνλ κ΅¬μ± μμμ
λλ€.
View
κ°μ²΄λ μ£Όμ΄μ§ λͺ¨λΈ λ°μ΄ν°λ₯Ό μ¬μ©νμ¬ HTML, JSON, XML, PDF λ± λ€μν ννλ‘ μλ΅μ λ λλ§ ν©λλ€.
Spring MVCμ View
κ°μ²΄λ μΆμνλ μΈν°νμ΄μ€λ₯Ό ν΅ν΄ λ€μν ν
νλ¦Ώ μμ§μ΄λ μΆλ ₯ νμμ μ§μν©λλ€.
2οΈβ£ View
κ°μ²΄μ μ£Όμ μν .
1. λͺ¨λΈ λ°μ΄ν° λ λλ§
View
κ°μ²΄λ 컨νΈλ‘€λ¬μμ μ λ¬λ Model
λ°μ΄ν°λ₯Ό μ΄μ©ν΄ ν΄λΌμ΄μΈνΈκ° λ³Ό μ μλ νμμΌλ‘ λ³νν©λλ€.
μλ₯Ό λ€μ΄, HTML ν
νλ¦Ώ μμ§μ μ¬μ©νμ¬ μΉ νμ΄μ§λ₯Ό μμ±νκ±°λ, JSONμΌλ‘ λ°μ΄ν°λ₯Ό λ³νν΄ API μλ΅μΌλ‘ λ³΄λΌ μ μμ΅λλ€.
2. μλ΅ μμ±
ν΄λΌμ΄μΈνΈμκ² μ μ‘λ μ΅μ’
μλ΅μ μμ±ν©λλ€.
μ΄λ λΈλΌμ°μ μ νμλ HTML νμ΄μ§μΌ μλ μκ³ , RESTful APIμ JSON μλ΅μΌ μλ μμ΅λλ€.
3. 컨ν
μΈ νμ
μ€μ
View
κ°μ²΄λ μμ±λ μλ΅ μ»¨ν
μΈ νμ
(μ: text/html
, application/json
, application/pdf
λ±)μ μ€μ νμ¬ ν΄λΌμ΄μΈνΈκ° μ¬λ°λ₯΄κ² ν΄μν μ μλλ‘ ν©λλ€.
3οΈβ£ View
κ°μ²΄μ μ’
λ₯.
Spring MVCμμλ μ¬λ¬ κ°μ§ μ νμ View
κ°μ²΄λ₯Ό μ§μν©λλ€.
μ΄λ€μ λ€μν μλ΅ νμμ μ²λ¦¬ν μ μλλ‘ μ€κ³λμμ΅λλ€.
1. JSP(JavaServer Page)
Spring MVCμμ κ°μ₯ μ ν΅μ μΌλ‘ μ¬μ©λλ λ·° κΈ°μ μ
λλ€.
JSPλ HTMLκ³Ό Java μ½λλ₯Ό νΌν©νμ¬ λμ μΈ μΉ νμ΄μ§λ₯Ό μμ±ν©λλ€.
2. Thymeleaf
μ΅κ·Ό λ§μ΄ μ¬μ©λλ ν
νλ¦Ώ μμ§μΌλ‘, HTML νμΌμ ν
νλ¦ΏμΌλ‘ μ¬μ©νμ¬, HTML νκ·Έμ νΉμν μμ±μ μΆκ°νμ¬ λμ μΈ μ½ν
μΈ λ₯Ό μμ±ν μ μμ΅λλ€.
3. FreeMarker
HTMLλΏλ§ μλλΌ ν
μ€νΈ κΈ°λ°μ λ€μν λ¬Έμλ₯Ό μμ±ν μ μλ ν
νλ¦Ώ μμ§μ
λλ€.
4. Velocity
Apache νλ‘μ νΈμμ μ 곡νλ ν
νλ¦Ώ μμ§μΌλ‘, FreeMarkerμ μ μ¬νκ² λ€μν ν
μ€νΈ κΈ°λ° μλ΄μ μμ±ν μ μμ΅λλ€.
5. JSON/XML View
MappingJackson2JsonView
μ κ°μ JSON λλ XML λ·°λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό JSON λλ XML νμμΌλ‘ λ³ννμ¬ RESTful API μλ΅μ μμ±ν μ μμ΅λλ€.
6. PDF/Excel View
AbstractPdfView
, AbstractXlsView
μ κ°μ λ·°λ₯Ό μ¬μ©νμ¬ PDFλ Excel νμΌμ μμ±νμ¬ μλ΅μΌλ‘ λ°νν μ μμ΅λλ€.
4οΈβ£ View
κ°μ²΄ μ¬μ© μμ
컨νΈλ‘€λ¬μμ View
κ°μ²΄λ₯Ό λͺ
μμ μΌλ‘ μ¬μ©ν μλ μκ³ , λ·° 리쑸λ²(View Resolver)κ° μλμΌλ‘ μ²λ¦¬ν μλ μμ΅λλ€.
@Controller
public class GreetingController {
@GetMapping ( "/greeting" )
public ModelAndView greeting () {
ModelAndView mav = new ModelAndView ( "greeting" );
mav . addObject ( "message" , "Hello welcome to our website!" );
return mav ;
}
}
μμ μμ μμ ModelAndView
κ°μ²΄λ₯Ό μ¬μ©νμ¬ View
λ₯Ό λͺ
μμ μΌλ‘ μ§μ νμ΅λλ€.
greeting
μ΄λΌλ λ·° μ΄λ¦μ λ³΄ν΅ JSPλ Thymeleaf ν
νλ¦Ώ νμΌκ³Ό 맀νλλ©°, μ΄ ν
νλ¦Ώ νμΌμ΄ λ λλ§ λ©λλ€.
5οΈβ£ λ·° 리쑸λ²(View Resolver)
Spring MVCμμ λ·° 리쑸λ²(View Resolver)λ 컨νΈλ‘€λ¬κ° λ°νν λ·° μ΄λ¦μ μ€μ View
κ°μ²΄λ‘ λ³νν΄μ£Όλ μν μ ν©λλ€.
μΌλ°μ μΌλ‘ λ·° 리쑸λ²λ ν
νλ¦Ώ μμ§μ΄λ λ·° νμΌμ κ²½λ‘λ₯Ό κ΄λ¦¬νκ³ , ν΄λΌμ΄μΈνΈμκ² μλ΅ν μ μ ν View
κ°μ²΄λ₯Ό κ²°μ ν©λλ€.
μλ₯Ό λ€μ΄, λ€μκ³Ό κ°μ λ·° λ¦¬μ‘Έλ² μ€μ μ΄ μμ μ μμ΅λλ€.
@Bean
public InternalResourceViewResolver viewResolver () {
InternalResourceViewResolver resolver = new InternalResourceViewResolver ();
resolver . setPrefix ( "/WEB-INF/views/" );
resolver . setSuffix ( ".jsp" );
return resolver ;
}
μ μ€μ μμλ 컨νΈλ‘€λ¬κ° greeting
μ΄λΌλ λ·° μ΄λ¦μ λ°ννλ©΄, InternalResourceViewResolver
λ /WEB-INF/views/greeting.jsp
λΌλ JSP νμΌμ μ°Ύμμ λ λλ§ν©λλ€.
6οΈβ£ μμ½.
View
κ°μ²΄λ Spring MVCμμ ν΄λΌμ΄μΈνΈμκ² μλ΅μ μμ±νκ³ λ λλ§νλ μν μ ν©λλ€.
μ΄ κ°μ²΄λ λͺ¨λΈ λ°μ΄ν°λ₯Ό μ¬μ©νμ¬ μ΅μ’
μλ΅μ μμ±νλ©°, λ€μν νμμ μΆλ ₯μ μ§μν©λλ€.
Spring MVCλ View
κ°μ²΄λ₯Ό μ§μ μ¬μ©νκ±°λ λ·° 리쑸λ²λ₯Ό ν΅ν΄ κ°μ μ μΌλ‘ μ¬μ©νμ¬, ν΄λΌμ΄μΈνΈμκ² μ΅μ’
κ²°κ³Όλ₯Ό μ λ¬ν©λλ€.