- 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>

  - 이와같이 설정하면 Controller 에서도 아래와같이 변경해 줘야한다.


package cranix.framework;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
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);
 }
}

 - 원래는 hello.jsp 였으나 앞과 뒤에 /jsp/ , .jsp 가 각각 붙기때문에 그냥 hello 만 써주어도 된다.

  --> 처음에는 beans 에 선언되어있는 빈 들이 독립적으로 쓰이는 것인줄 알았으나 해보니 서로의 기능이 병합되어서 프로그램에 반영되는것을 알았다. 일종의 플러그인 같은걸로 이해하면 되겠다.
 


- 간단한 모델 사용하기
  - 테스트를위해 아래 두 클래스를 만든다.
    - Product.java

package cranix.framework;
import java.io.Serializable;
public class Product implements Serializable {
 private String description;
 private Double price;
 public void setDescription(String s) {
  description = s;
 }
 public String getDescription() {
  return description;
 }
 public void setPrice(Double d) {
  price = d;
 }
 public Double getPrice() {
  return price;
 }
}

    - ProductManager.java

package cranix.framework;
import java.io.Serializable;
import java.util.List;
public class ProductManager implements Serializable {
 private List products;
 public void setProducts(List p) {
  products = p;
 }
 public List getProducts() {
  return products;
 }
}

  - 컨트롤러를 아래와같이 변경한다.


package cranix.framework;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
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;
 }
}

    --> 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>

  - 설정파일에서 직접 파라메터를 셋팅하는 화면이다.
     클래스의 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
by cranix 2007. 2. 28. 10:57
JSTL ( JSP Tag Library )

일반적으로 사용하는 JSP 태그를 표준화 시킨건데 아래 것들이 많이 사용된다.

CORE  ::  http://java.sun.com/jstl/core   ::  c
XML    ::  http://java.sun.com/jstl/xml    ::  x
I18N     ::  http://java.sun.com/jstl/fmt     :: fmt
SQL     ::  http://java.sun.com/jstl/sql     ::  sql

예) <%@ 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 파일을 받으면 된다.


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  ::  쿠키 정보에 접근
pageContext  :: PageContext 객체


참조 : http://blog.empas.com/zeroscience/17279705

' > 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
by cranix 2007. 2. 28. 10:36

HELLO SPRING 테스트


1. SPRING 을 위한 환경설정
  - WEB-INF/lib 디렉토리를 만들고 dist/spring.jar 파일을 넣는다.
    --> Hello Spring 만을 찍기위함 이기때문에 딴건 다 필요없고 spring.jar 파일만 있으면 된다.

2. SPRING 의 WEB.XML 파일설정
  - web.xml 파일에 추가


    <servlet>
        <servlet-name>springapp</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springapp</servlet-name>
        <url-pattern>*.sdo</url-pattern>
    </servlet-mapping>

    --> 위와같이 설정법은 스트러츠의 그것과 동일하다.


3. SPRING 의 설정파일
  - 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"/>
    <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">           
             <props>               
              <prop key="/hello.sdo">springappController</prop>           
             </props>       
            </property>   
    </bean>
</beans>


    --> 1에서 servlet-name 이 springapp 로 되어있다면 설정파일은 WEB-INF/springapp-servlet.xml 이된다.
    --> 이런형태면 각 맵핑마다 컨트롤러를 따로 지정할수 있을꺼같다.
    --> API 를 잠깐 확인해봤을때 기본 컨트롤러 들이 있었는데 그런것들을 좀더 공부해봐야겠다.

4. 실행
  - http://localhost:8080/appname/hello.sdo 실행
    --> 만약 실행했는데 dtd 파일을 못찾는다고 오류가나면 2번의 설정파일에서 "http://www.springframework.org/dtd/spring-beans-2.0.dtd" 로 바꾼후 실행한다.


참고 : http://www.springframework.org/docs/MVC-step-by-step/Spring-MVC-step-by-step-Part-1.html

' > Spring' 카테고리의 다른 글

SPRING  (25) 2007.02.28
JSTL 사용하기  (28) 2007.02.28
스프링 프레임워크 공식 홈페이지  (16) 2007.02.26
Spring 프레임 워크북  (17) 2007.02.26
Spring Framework 레퍼런스  (23) 2007.02.26
by cranix 2007. 2. 27. 14:08
스프링 프레임워크 공식 홈페이지

http://www.springframework.org/

' > Spring' 카테고리의 다른 글

SPRING  (25) 2007.02.28
JSTL 사용하기  (28) 2007.02.28
hello spring 테스트  (19) 2007.02.27
Spring 프레임 워크북  (17) 2007.02.26
Spring Framework 레퍼런스  (23) 2007.02.26
by cranix 2007. 2. 26. 15:42
박재성 | 한빛미디어 | 2006년 01월 31일
책소개 무거운 EJB 아키텍처에서 벗어나 가벼운 Spring의 세계로 빠져보자!Spring은 EJB 아키텍처를 대신할 수 있는 강력한 프레임워크이지만, EJB처럼 개발자를 머리 아프게 할 정도로 무겁지 않다. 엔터프라이즈급 개...

Craig Walls,Ryan Breidenbach | Independent Pub Group | 2004년 12월 31일



스프링 인 액션 책은 어디서 구해야할라나...

' > Spring' 카테고리의 다른 글

SPRING  (25) 2007.02.28
JSTL 사용하기  (28) 2007.02.28
hello spring 테스트  (19) 2007.02.27
스프링 프레임워크 공식 홈페이지  (16) 2007.02.26
Spring Framework 레퍼런스  (23) 2007.02.26
by cranix 2007. 2. 26. 15:14

' > Spring' 카테고리의 다른 글

SPRING  (25) 2007.02.28
JSTL 사용하기  (28) 2007.02.28
hello spring 테스트  (19) 2007.02.27
스프링 프레임워크 공식 홈페이지  (16) 2007.02.26
Spring 프레임 워크북  (17) 2007.02.26
by cranix 2007. 2. 26. 15:12
사람풍경 김형경 심리 여행 에세이
김형경 | 위즈덤하우스 | 2006년 10월 10일
책소개 작가가 세계 곳곳을 여행하면서 만난 많은 사람들과의 에피소드를 통해 인간의 내면 깊은 곳에 내재한 감정의 실체와 근본에 대해 사색하게 하는 책이다. 에세이 문학의 본질이 인간의 내면 또는 작가 자신의 내...


이번에 읽은 책이다.

신기하게 대부분 내얘기를 하는거 같았다.

그중의하나 "인정중독" 이라는 말이 나온다.

다른사람들의 인정에 가치를두고 추구하는 사람.

이건 나다.

책을 읽고나니 나에대해 조금더 이해할수 있게 되었다.

아니 사람들에 대해 라고 해야되나..

아니지.. 내안의 또다른 나에대해 라고 하는게 맞겠다.

정말 책의 처음 글귀처럼 모든 여행자에게 추천한다.




이 책을 모든 여행자에게 바친다.

이국의 거리를 걷거나,

길고 긴 인생을 걷거나,

마음의 미로를 걷고 있는 이들에게.



 

'자유글 > 생각' 카테고리의 다른 글

평상시란 없다.  (22) 2007.06.14
머리가 뜨겁다  (720) 2007.03.07
내가 어렸을땐..  (24) 2007.02.03
섭섭하게 그러나 아주 이별이지는 않게  (44) 2007.01.23
라디오스타  (19) 2007.01.21
by cranix 2007. 2. 23. 19:16

처음으로 자바 컨퍼런스 라는걸 가게됬다.

후배가 혼자가기 모하다고 해서 가는거긴 하지만

솔직히 기대된다.ㅋㅋㅋ

자세한 내용은 아래 링크로~

http://www.javacommunity.org/conference/conferenceInfo.jsp

궁금한건 마지막에있는 "자바인의밤" 은 뭐하는걸까?

'자유글' 카테고리의 다른 글

비야씨 오십니다!  (34) 2007.03.14
VNC VIEWER  (781) 2007.03.11
끝 그리고 시작  (21) 2007.02.16
성공이다.  (18) 2007.02.16
제대로신기한 착시현상  (23) 2007.02.06
by cranix 2007. 2. 22. 15:08
사용자 삽입 이미지


드디어 마지막날 아침이 밝았다.

이제 대관령을 넘어 강릉에 가기만하면 되는것이다.

어제 일기예보에 오늘은 날씨가 좋을꺼라고 한다.

딱 좋다.

그래도 대관령 아닌가.

아껴두었던 목티까지 꺼내입고 완전무장을 하고서야 길을나선다.

오늘은 8시쯤 길을 나섰다.



길을 가던도중 할머니가 말을건다.

할머니 : 학생 스키타러가?
나 : 아뇨
할머니 : 그럼 어디가?
나 : 강릉에가요.
할머니 : 차타고 가려면 이쪽으로 가면 안되는데..
나 : 걸어가요
할머니 : 에휴~~ 왜그래?
  운동 하려고 그러는거지?
  왜그리 힘든일을 한데~~

왜그리 힘든일을 할까?

솔직히 운동하려고 이러는건 아니다.

젊어서 고생은 사서도 한다 그러지 않았나?

왜?

난 여행을 하면 무언가 얻을꺼 같았다.

그것이 자아 라는 것일수도 있고, 일종의 과시욕 일수도 있다.

정확히는 모르겠다.

그러나 확실한건 나를 좀더 믿을수있게 되었다는것이다.



횡계를 벗어나 대관령에 들어섰다.

정상에 가니 풍력발전기가 보였다.

사용자 삽입 이미지


언제나 저 멀리서 작게만 보였던게 내앞에 이렇게 크게 서있다.

사용자 삽입 이미지


금방 우주로 날아갈꺼같은 비행선 같다.


사용자 삽입 이미지


아 드디어 강릉시다.

반갑다.

사용자 삽입 이미지


예전에 몇번봤던 대관령 비석이 보인다.

비석 뒤쪽으로 보이는 경관은 그야말로 장관이다.

저 멀리 강릉시내와 바다가 보인다.

그런데 비석 뒤쪽은 낭떠러지 였는데..

아무 안전시설이 없었다.

게다가 얼음도 얼어있어서 살짝 잘못 딪어도 바로 낭떠러지 행이다.

사용자 삽입 이미지


이 사진도 찍는데 상당히 살벌했다.



대관령을 내려와 강릉시내를 얼마 남겨놓지 않은지점

여기는 내가 익히 아는곳이다.

낯선곳을 벗어나 익숙한곳에 발을 들였을때의 반가움이란..

정말 잊고있었다.

마음을 쉴때가 있다는것이 얼마나 행복한 것인지를 정말 모르고있었다.



조금더 갔더니 헙!

사용자 삽입 이미지


동전이다.

나 제대로 온거 맞지?

기쁘다.



이제 힘이난다.

익히 아는 도로를 거쳐 익히 아는 우리동네 비석을 보았다.

사용자 삽입 이미지


많은 날을 지나온 비석이었지만 오늘만큼은 감회가 새로웠다.

눈물이 핑돈다.

이젠 알거같다.

어떤일이든 한걸음 한걸음 착실히 가면 끝까지 올수있단것을..

그건 당연한거잖아!

라고 생각하겠지만

이렇게 절실히 느껴본건 처음이다.



집이란 참 편한곳이다.

'자유글 > 도보여행' 카테고리의 다른 글

도보여행 6일차  (55) 2007.02.18
도보여행 5일차  (32) 2007.02.18
도보여행 4일차  (44) 2007.02.18
도보여행 3일차  (23) 2007.02.17
도보여행 2일차  (34) 2007.02.17
by cranix 2007. 2. 18. 21:54
오늘 목적지는 횡계다.

원래는 진고개를 넘어 주문진 쪽으로해서 집에 가려고 했으나,

대관령을 넘는게 더 효율적인거 같아서 경로를 급수정 했다.

또한 이쪽으로 가게되면 하루 단축할수도 있다.



일단 길을 나섰는데 표지판이 헷깔린다.

결국 고속도로로 들어와 버렸다..ㅡ.ㅡ;

저 옆에 6번 국도가 보이지만 넘어갈 방법이 없다.

일단 걷기로 했다.

고속도로는 원래 도보로 통행하는게 금지되어 있다.

그런데 직접 걸어보니 갓길이 거의 한차선 만큼이나 넓게 되어있어서

걷기가 상당히 편하다.

지금까지 걸었던 6번국도는 갓길이 거의 없다시피 했는데...

이런 생각을 하면서 걷고있는데 뒤에서 싸이렌 소리가 울린다.

이크.. 올것이 왔구나..

고속도로 순찰대 아저씨 두명이 차에 타란다.

일단 탔다.

그아저씨들 말인즉슨

IOC 실사단이 올때가 됬는데 나때문에 발칵 뒤집혔단다.

솔직히 내가 잘못한건 인정하겠는데 IOC 실사단이랑 뭔상관이란 말인가?

실사단이 차타고 가다가 고속도로에 걸어가는 사람을보면 탈락시키기라도 한단말인가?

이해 할수 없다.


어째껀 그 아저씨들은 또 고맙게도 내가 아침먹으려던 휴게소를 한참 지나서 세워줬다.ㅡ.ㅡ;

뭐 아침은 어쩔수 없지.

그나저나 이번에 약 2분간 차에 탔던것으로

내 도보여행에 오점이 남게 되었다.

이런..ㅡ.ㅡ;



분명 방금전까지 속사가..

사용자 삽입 이미지

이만큼 남았었는데...

약간 더 걸었는데 속사가 나왔다.

순간 당황했다.

순간이동 한줄 알았다.

갑자기 차에탔더니 속도에 적응이 안됬나 보다.

어째껀 아까 못먹은 아침을 여기서 먹어야 겠다.


사용자 삽입 이미지


드디어 진부로 들어섰다.

횡계로 가려면 진부시내를 가로질러 국도를 타고 가야한다.

일단 진부 시내에 들어왔는데..

길이 좀 복잡하다.

마침 옆에 경찰서가 보여 들어 갔더니 친절하게 가르쳐 주신다.

신기하게도 그분이 내 고등학교 선배님이 었다.

그래서 음료수도 하나 주신다.

고맙습니다!

인사를 하고 다시 떠난다.



사용자 삽입 이미지


드디어 강릉이 하루 거리에 들어왔다.

이제 정말 내일이 마지막날 이라는게 실감이 난다.

횡계 까지도 4KM 밖에 안남았다.

지금까지 경험으로 봐선 저정도 남았으면  시가지가 보일법도 한데..

전혀 안보인다.

이번에 거리표지판은 에누리가 없나보다.


드디어 횡계 시내 도착!

지금까지 잘 와준 나를 축하하는 의미로 다과회를 준비했다.

사용자 삽입 이미지


흐흣 이젠 혼자해도 별로 이상하지 않다.

여관에 들어왔는데 이상하게 전처럼 피곤하지 않다.

그리고 내일이 기다려진다.

'자유글 > 도보여행' 카테고리의 다른 글

도보여행 7일차(마지막날)  (44) 2007.02.18
도보여행 5일차  (32) 2007.02.18
도보여행 4일차  (44) 2007.02.18
도보여행 3일차  (23) 2007.02.17
도보여행 2일차  (34) 2007.02.17
by cranix 2007. 2. 18. 21:35
| 1 2 3 |