글
- url 을 바꾸지않고 jsp 경로 변경하기
- springapp-servlet.xml 파일에 아래와같이 추가하면 jsp 가 불러질때(컨트롤러에서) 앞과 뒤에 자동으로 붙어서 넘어가게 설정할수 있다.
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property>
<property name="prefix"><value>/jsp/</value></property>
<property name="suffix"><value>.jsp</value></property>
</bean>
<property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property>
<property name="prefix"><value>/jsp/</value></property>
<property name="suffix"><value>.jsp</value></property>
</bean>
- 이와같이 설정하면 Controller 에서도 아래와같이 변경해 줘야한다.
package cranix.framework;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.mvc.Controller;
public class SpringappController implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
String now = (new java.util.Date()).toString();
return new ModelAndView("hello","now",now);
}
// TODO Auto-generated method stub
String now = (new java.util.Date()).toString();
return new ModelAndView("hello","now",now);
}
}
- 원래는 hello.jsp 였으나 앞과 뒤에 /jsp/ , .jsp 가 각각 붙기때문에 그냥 hello 만 써주어도 된다.
--> 처음에는 beans 에 선언되어있는 빈 들이 독립적으로 쓰이는 것인줄 알았으나 해보니 서로의 기능이 병합되어서 프로그램에 반영되는것을 알았다. 일종의 플러그인 같은걸로 이해하면 되겠다.
- 간단한 모델 사용하기
- 테스트를위해 아래 두 클래스를 만든다.
- Product.java
package cranix.framework;
import java.io.Serializable;
public class Product implements Serializable {
private String description;
private String description;
private Double price;
public void setDescription(String s) {
description = s;
}
description = s;
}
public String getDescription() {
return description;
}
return description;
}
public void setPrice(Double d) {
price = d;
}
price = d;
}
public Double getPrice() {
return price;
}
}
return price;
}
}
- ProductManager.java
package cranix.framework;
import java.io.Serializable;
import java.util.List;
import java.util.List;
public class ProductManager implements Serializable {
private List products;
private List products;
public void setProducts(List p) {
products = p;
}
products = p;
}
public List getProducts() {
return products;
}
}
return products;
}
}
- 컨트롤러를 아래와같이 변경한다.
package cranix.framework;
import java.util.HashMap;
import java.util.Map;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.mvc.Controller;
public class SpringappController implements Controller {
private ProductManager pm =null;
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
String now = (new java.util.Date()).toString();
Map myModel = new HashMap();
myModel.put("now", now);
myModel.put("products", getProductManager().getProducts());
return new ModelAndView("hello","model",myModel);
}
public void setProductManager(ProductManager pm) {
this.pm = pm;
}
public ProductManager getProductManager() {
return this.pm;
}
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
String now = (new java.util.Date()).toString();
Map myModel = new HashMap();
myModel.put("now", now);
myModel.put("products", getProductManager().getProducts());
return new ModelAndView("hello","model",myModel);
}
public void setProductManager(ProductManager pm) {
this.pm = pm;
}
public ProductManager getProductManager() {
return this.pm;
}
}
--> ModelAndView 클래스의 이름이 왜 모델과 뷰 인지 이제야 이해가 간다.
- springapp-servlet.xml 파일을 아래와같이 변경한다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<!-- - Application context definition for "springapp" DispatcherServlet. -->
<beans>
<bean id="springappController" class="cranix.framework.SpringappController">
<property name="productManager">
<ref bean="prodMan"/>
</property>
</bean>
<bean id="prodMan" class="cranix.framework.ProductManager">
<property name="products">
<list>
<ref bean="product1"/>
<ref bean="product2"/>
<ref bean="product3"/>
</list>
</property>
</bean>
<bean id="product1" class="cranix.framework.Product">
<property name="description"><value>Lamp</value></property>
<property name="price"><value>12.34</value></property>
</bean>
<bean id="product2" class="cranix.framework.Product">
<property name="description"><value>테스트</value></property>
<property name="price"><value>22.12</value></property>
</bean>
<bean id="product3" class="cranix.framework.Product">
<property name="description"><value>ABC</value></property>
<property name="price"><value>234.22</value></property>
</bean>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello.sdo">springappController</prop>
</props>
</property>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property>
<property name="prefix"><value>/jsp/</value></property>
<property name="suffix"><value>.jsp</value></property>
</bean>
</beans>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<!-- - Application context definition for "springapp" DispatcherServlet. -->
<beans>
<bean id="springappController" class="cranix.framework.SpringappController">
<property name="productManager">
<ref bean="prodMan"/>
</property>
</bean>
<bean id="prodMan" class="cranix.framework.ProductManager">
<property name="products">
<list>
<ref bean="product1"/>
<ref bean="product2"/>
<ref bean="product3"/>
</list>
</property>
</bean>
<bean id="product1" class="cranix.framework.Product">
<property name="description"><value>Lamp</value></property>
<property name="price"><value>12.34</value></property>
</bean>
<bean id="product2" class="cranix.framework.Product">
<property name="description"><value>테스트</value></property>
<property name="price"><value>22.12</value></property>
</bean>
<bean id="product3" class="cranix.framework.Product">
<property name="description"><value>ABC</value></property>
<property name="price"><value>234.22</value></property>
</bean>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello.sdo">springappController</prop>
</props>
</property>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property>
<property name="prefix"><value>/jsp/</value></property>
<property name="suffix"><value>.jsp</value></property>
</bean>
</beans>
- 설정파일에서 직접 파라메터를 셋팅하는 화면이다.
클래스의 set 메소드들을 property 태그로 셋팅할수 있다.
참조 : http://www.springframework.org/docs/MVC-step-by-step/Spring-MVC-step-by-step-Part-2.html
'웹 > Spring' 카테고리의 다른 글
클래스의 toString 및 equals 메소드 자동으로 만들어주기. (47) | 2007.05.26 |
---|---|
기본 Controller 지정하기. (23) | 2007.05.24 |
JSTL 사용하기 (28) | 2007.02.28 |
hello spring 테스트 (19) | 2007.02.27 |
스프링 프레임워크 공식 홈페이지 (16) | 2007.02.26 |
글
JSTL ( JSP Tag Library )
일반적으로 사용하는 JSP 태그를 표준화 시킨건데 아래 것들이 많이 사용된다.
예) <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
위와같이 JSP 파일에 선언해주면 되는데 하기전에 라이브러리 파일과 tld 파일을 설치해 줘야한다.
- JSTL 설치하기
1. JSTL 다운로드
JSTL 은 아래 두사이트에서 다운로드 할수있다.
--> 여기서 다운로드를 해봤는데 모든 툴들이 하나로 통합되어 진거 같다.
JSTL 만 따로 받고싶은 나로선 별로 내키진 않았다.
2. 설치
- WEB-INF/lib 디렉토리에 jstl.jar 와 standard.jar 파일을넣는다.
- WEB-INF/tld 에다가 tld 폴더를 복사한다.
3. WEB.XML 설정
--> 처음에 uri="http://java.sun.com/jstl/core" 라고 쓰는걸 보고 sun 에서 해당 url 을 지원해 주는줄 알았으나 그게 아니고 WEB.xml 파일에 아래와같이 설정해 줘야지 쓸수 있는것이다.
4. JSP 선언
--> 위에서 말한것처럼 JSP 파일에는 아래와같이 선언해주면 된다.
- EL(expression language) 내장객체
일반적으로 사용하는 JSP 태그를 표준화 시킨건데 아래 것들이 많이 사용된다.
예) <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
위와같이 JSP 파일에 선언해주면 되는데 하기전에 라이브러리 파일과 tld 파일을 설치해 줘야한다.
- JSTL 설치하기
1. JSTL 다운로드
JSTL 은 아래 두사이트에서 다운로드 할수있다.
JSTL 만 따로 받고싶은 나로선 별로 내키진 않았다.
2) http://apache.org
--> 여기서는 jakarta-taglibs-standard-1.1.2.zip 파일을 받으면 된다.
--> 여기서는 jakarta-taglibs-standard-1.1.2.zip 파일을 받으면 된다.
2. 설치
- WEB-INF/lib 디렉토리에 jstl.jar 와 standard.jar 파일을넣는다.
- WEB-INF/tld 에다가 tld 폴더를 복사한다.
3. WEB.XML 설정
--> 처음에 uri="http://java.sun.com/jstl/core" 라고 쓰는걸 보고 sun 에서 해당 url 을 지원해 주는줄 알았으나 그게 아니고 WEB.xml 파일에 아래와같이 설정해 줘야지 쓸수 있는것이다.
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/xml</taglib-uri>
<taglib-location>/WEB-INF/tld/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
</taglib>
4. JSP 선언
--> 위에서 말한것처럼 JSP 파일에는 아래와같이 선언해주면 된다.
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
- EL(expression language) 내장객체
pageScope :: page 범위에 포함된 속성 값에 접근
requestScope :: request 범위에 포함된 속성값에 접근
sessionScope :: session 범위에 포함된 속성값에 접근
applicationScope :: application 범위에 포함된 속성값에 접근
param :: request.getParameter("aa")와 동일한 기능. 사용은 $(param.aa)
paramValues :: request.getParameterValues의 기능. $(paramValues.aa)
header :: request.getHeader('aa") 와 동일. $(header.aa)
headerValues :: request.getHeaderValues("aa")와 동일 $(headerValues.aa)
initParam :: 컨텍스트의 초기화 파라미터값
cookie :: 쿠키 정보에 접근
'웹 > Spring' 카테고리의 다른 글
기본 Controller 지정하기. (23) | 2007.05.24 |
---|---|
SPRING (25) | 2007.02.28 |
hello spring 테스트 (19) | 2007.02.27 |
스프링 프레임워크 공식 홈페이지 (16) | 2007.02.26 |
Spring 프레임 워크북 (17) | 2007.02.26 |
RECENT COMMENT