728x90
http://www.springsource.com/landing/best-development-tool-enterprise-java

이리도 쉬운것을 멀리 돌아왔구먼....

위 사이트에 접속해서
오른쪽에 있는 "Download Now"를 누르는 것 보다

I agree and accept the license terms and export restrictions associated with this product.

요기에 체크하고(라이센스에 동의한다)

다운로드 링크를 클릭하면 바로 다운로드 페이지로 간다.
(I'd rather not fill in the form. Just take me to the download page)
(그냥 다운로드 하고 싶다)

자기 버전에 맞는 툴을 받는다.

728x90
728x90
http://download.eclipse.org/technology/m2e/releases

처음부터 이곳을 찾았어야 했다.
오랜만에 찾다보니... 오래된것들이 많아서
찾아보면 나오기는 하지만

http://m2eclipse.sonatype.org/update/ 해당 update는 더이상 유효하지 않다
Eclipse로 통합됐으니...

위의 링크로 Update 받으니 maven plug-in이 제대로 설치가 되는군 쩝.

728x90
728x90
바로 전에 만든 첫번째 DynamicWeb Project를 기반으로

폼 전송이 되는 예제를 만든다.

간단히 form을 하나 만들고 전송버튼을 눌렀을 때
폼의 내용을 전송하는 예제이다.

1. 해당 파일로 접속하도록 index.jsp 수정
WebContent/index.jsp
<jsp:forward page="contacts.html"></jsp:forward>

2. 연락처 추가 page
WebContent/WEB-INF/jsp/contact.jsp

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
    <title>Spring 3 MVC Address book </title>
</head>
<body>
<h2>주소록</h2>

<form:form method="post" action="addContact.nobang">
    <table>
        <tr>
            <td><form:label path="firstname">Firstname </form:label>
            <td><form:input path="firstname"/></td>
        </tr>
        <tr>
            <td><form:label path="lastname">Lastname </form:label>
            <td><form:input path="lastname"/></td>
        </tr>
        <tr>
            <td><form:label path="email">Email</form:label>
            <td><form:input path="email"/></td>
        </tr>
        <tr>
            <td><form:label path="mobile">Mobile</form:label>
            <td><form:input path="mobile"/></td>
        </tr>
        <tr>
            <td colspan="2">
                <input type="submit" value="Add Contact"/>
            </td>
        </tr>
    </table>

</form:form>

tag lib로 각 항목을 전송
나중에 해당 page는 addContact.nobang 으로 전송됨
(pattern으로 *.nobang을 인식함)


3. java source
form에서 넘어오는 data를 담을 객체 정의

package com.nobang.spring3.form;

public class Contact {
    private String firstname;
    private String lastname;
    private String email;
    private String mobile;
    public String getFirstname() {
        return firstname;
    }
    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }
    public String getLastname() {
        return lastname;
    }
    public void setLastname(String lastname) {
        this.lastname = lastname;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    } 
}


Controller 정의
package com.nobang.spring3.controller;

import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.servlet.ModelAndView;

import com.nobang.spring3.form.Contact;


@Controller
@SessionAttributes
public class ContactController {

    @RequestMapping(value="/addContact", method = RequestMethod.POST)
    public String addContact(@ModelAttribute("contact") Contact contact, BindingResult result){
        System.out.println(contact.getFirstname() + contact.getLastname() );
        System.out.println(contact.getEmail() + " : " + contact.getMobile());
        return "redirect:contacts.nobang";
    }
   
    @RequestMapping("/contacts")
    public ModelAndView showContacts(){
        return new ModelAndView("contact", "command", new Contact());
    }
}


프로젝트를 실행한 뒤
form에 내용을 채우고
전송버튼을 누르면
Console에 로그가 찍힘.
728x90
728x90
첫번째 SpringFramewor 3.0 프로젝트.

Eclipse와 Java 환경설정은 끝났다고 가정하고

1.Eclipse를 열어 새 프로젝트에서 Dynamic Web Project를 선택하여
원하는 프로젝트명을 만든다.

나는 Spring3WithDynamicWeb이라고 지었다.

2. 첨부된 파일을 WebContent > WEB-INF > lib 폴더 안으로 복사한다
(build path에 넣는것이므로 별다른 설정 필요 없음)
commons-logging-1.0.4.jar
jstl-1.2.jar
org.springframework.asm-3.0.1.RELEASE-A.jar
org.springframework.beans-3.0.1.RELEASE-A.jar
org.springframework.context-3.0.1.RELEASE-A.jar
org.springframework.core-3.0.1.RELEASE-A.jar
org.springframework.expression-3.0.1.RELEASE-A.jar
org.springframework.web.servlet-3.0.1.RELEASE-A.jar
org.springframework.web-3.0.1.RELEASE-A.jar

3. Controller 만들기
원하는 Package에 Controller를 만든다.

com.nobang.spring3.controller/HelloWorldController.java

package com.nobang.spring3.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HelloWorldController {
    @RequestMapping("/hello")
    public ModelAndView helloWorld(){
        String message = "Hello World, Spring3";
        return new ModelAndView("hello", "message" , message);
    }
}

/hello라는 요청이 들어오면 처리한다는 내용으로
/hello/* 을 뜻한다. (ex. /hello/hello.html 등)

4. JSP 만들기
WEB-INF/jsp/hello.jsp

<html>
<head>
    <title>Spring 3.0 MVC Series: Hello World - ViralPatel.net</title>
</head>
<body>
    ${message}
</body>
</html>

${message}는 controller의 helloWorld()를 통해 return 받을 ModelAndView에 "message"로 정의되어 있다.

WebCont/index.jsp
최초로 응답할 화면을 정의 한다.
<html>
    <head>
        <title>Spring 3.0 MVC</title>
    </head>
    <body>
        <a href="hello.nobang">Hello</a>
    </body>
</html>

5. web.xml 을 설정한다
WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Spring3WithDynamicWeb</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
 
  <servlet>
      <servlet-name>spring</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
      <servlet-name>spring</servlet-name>
      <url-pattern>*.nobang</url-pattern>
  </servlet-mapping>
</web-app>

추후 <servlet이름>-servlet.xml 을 만들어야 한다.
servlet이름을 spring으로 지었으면 spring-servlet.xml 을 만든다.

브라우저를 통해 들어오는 요청이 url-pattern과 맞을 때, 해당 servlet이 동작한다.
위의경우 *.nobang으로 했으므로 /hello.nobang 으로 하면된다.
그래서  hello.jsp에서도 a href에 hello.nobang으로 되어 있다.
일반적으로는 .html을 한다.


6. <servlet-이름>-servlet.xml 을 만든다
WEB-INF/spring-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.0.xsd">
 
     <context:component-scan base-package="com.nobang.spring3.controller"/>
     <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
         <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
         <property name="prefix" value="/WEB-INF/jsp/"/>
         <property name="suffix" value=".jsp"/>
     </bean>
 
 </beans>

viewResolver설정에서
브라우저로 들어오는Url에 자동으로 값들을 추가하여 실제 파일과 매칭시킨다.
ex) /hello.nobang으로 들어오면
nobang이라는 pattern에 따라 spring servlet을 타게되고
/WEB-INF/jsp 아래에 있는 .jsp 파일중에서 hello.jsp를 찾는다.


728x90
728x90
새로운 Project를 실행시킨다.

Spring lib를 Build Path에 추가한다.

----------------------------------------------
 1. Service를 할 Class를 만든다.
HelloSpring3.java

public class HelloSpring3{
    public void sayHello(){
        System.out.println("Hi Spring!!");
    }
}

2. Spring 설정파일을 만든다.
Spring-Hello.xml

<?xml version="1.0" encoding="UTF-8"?>


<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xmlns:aop="http://www.springframework.org/schema/aop"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">


<bean id="HelloSpringBean" class="HelloSpring"/>

</beans> 

: Spring의 특징은 실행되는 시점에 설정대로 동작을 한다는 뜻인데
XML에서 설정한 Bean ID 인 HelloSpringBean이라는 것을 호출하면 HelloSpring 이라는 Class가 응답을 한다는 뜻이다.
 *** 해당 XML 파일은 소스폴더에 있어야 한다.
 
3. 실행하기
 Hello.java
public class Hello{
    public static void main(String[] args){
        XmlBeanFactory beanFactory
      = new XmlBeanFactory(new ClassPathResource("Spring-Hello.xml"));
    HelloSpring myBean        
      = (HelloSpring)beanFactory.getBean("HelloSpringBean");

    myBean.sayHello();

    }
}

XML에서 Bean을 가져올 것이므로 XmlBeanFactory를 사용한다.
해당 XML은 Source 폴더 즉. Classpath에 있으므로 ClassPathResource를 사용한다.
=>ClassPath에 있는 Xml파일을 읽어서 Bean으로 사용한다.

BeanFactory에서 Id를 읽어 Class를 생성한다.
생성한 Class의 method를 실행한다. 
728x90
728x90
오랜만에 springsource.org에 갔더니 많은것이 바뀌어 있었다.

그냥 새로나왔다는 프레임워크 소스를 받고 싶었을 뿐인데
찾기가 쉽지 않았다.

그러던 와중에 쉽게 다운받는 링크를 찾았다.

http://static.springsource.org/downloads/nightly/release-download.php?project=SPR

스프링 사이트 내부에 있는것이라 언제 바뀔지 알 수 없으나
2011년 7월 현재 접속된다 ^^ 
728x90
728x90
오늘 토익관련 얘기를 하던 중에 영어 표현에 대한 얘기가 나왔었는데
정말 뒷통수를 맞은 듯한 느낌을 받은 표현이었다.

- 극장에서
'주리기 공원 어른 2장 8시 20분'

저의 대답은요
'쥐라식 팍. 투 어덜트. 에이트 트웨니 플리즈'

정말 교과서에 나올만한 직역이다.

이것을 사용하는 말로 바꾸면
'투 티켓츠 포 쥐라식 팍, 에이트웨니'
듣는 순간 '이거다'라는 느낌이

- 자리가 비었나요?

저의 대답은요
'디스 싯 이즈 어밸러블'

역시 교과서에 나오는 표현이다.

이것을 사용하는 말로 바꾸면
'is the taken?'
완점 가슴을 때리는 표현이 아닐 수 없다.

문법적으로는 맞을 지 몰라도 사람냄새가 난다고나 할까?

요새 개콘에서 어려운 영어를 한국어로 바꾸는 표현도 그렇지만
정말 언어는 사람이 쓰는거니까
한 대목을 인용하면
'옆에서 여자친구가 자꾸 귀찮게 할 때'
- please leave me along. I'm trying to work
이것을 우리말로 고치면


-->(짜증섞인 말투로) 쫌~~~

728x90
728x90
늘 궁금했언  두개이상의 Table을 어떻게 관리할까의 예제를 찾았다.

여기가 바로 그 링크다.


http://code.google.com/p/and-bookworm/source/browse/trunk/src/com/totsp/bookworm/data/dao/BookDAO.java


Source path:  svn trunksrccomtotspbookwormdatadaoBookDAO.java 
728x90
728x90
원인은 모르겠다.
새로 받아서 깔아보고 뭐 다 해봤는데도 계속 못찾는다는 메세지가 보였다.

결국 이클립스에서
"Help" -> "Check for uppdates"
android 관련 update를 하고 나니 해결이 됨. ㅡㅡ;
728x90
728x90
String s = "abc def";

s.split("\\s");

\D : 숫자 빼고
\d : 숫자만
728x90
BLOG main image
"그게 뭐 어쨌다는 거냐?" 늘 누가 나에게 나에대한 말을할 때면 이말을 기억해라. by nobang

카테고리

nobang이야기 (1951)
Life With Gopro (7)
Life With Mini (79)
Diary (971)
너 그거 아니(do you know) (179)
난 그래 (159)
Study (290)
속지말자 (10)
Project (34)
Poem (15)
Song (0)
Photo (113)
낙서장 (45)
일정 (0)
C.A.P.i (2)
PodCast (0)
nobang (27)
고한친구들 (4)
recieve (0)
History (0)
android_app (2)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :