เอามาแปลใส่บล๊อกตัวเองหน่อย ช่วงนี้กะลังนั่งศึกษา Spring MVC แบบเร่งด่วนเพื่อทำ Topic เลยเอา Tutorial ที่อ่านมาแปลเป็นไทยขึ้นบล๊อกด้วยดีกว่า สำหรับบทสอนที่เอามาขึ้นก็เอามาจาก http://www.springframework.org/docs/MVC-step-by-step/Spring-MVC-step-by-step.html ใครสนใจต้นฉบับก็ไปดูได้จากที่นั่นเลย เพราะที่จะเอามาพิมพ์ลงที่นี่อาจมีดัดแปลงนิดหน่อย อย่างแรกเลยสิ่งที่ต้องเตรียม
- Java SDK (มันแน่อยู่แล้ว)
- Eclipse 3.2 (ถ้าในเว็บจะเป็น ant อะ คือเค้า compile ผ่าน shell สดๆ แต่ผมไม่ดีกว่า ><” ไม่เชี่ยวพอ)
- WTP Plugin ของ Eclipse
- Apache Tomcat 5.5 (ไว้รันอ่ะ)
Step1 สร้าง Project ใหม่ใน Eclipse
- เลือก File -> New -> Project…
- ไปที่ Web แล้วเลือก Dynamic Web Project กด Next แล้วใส่ชื่อ Project ไปตามเว็บที่ให้ไว้ด้านบนเค้าตั้งชื่อ project ว่า Springapp ก็ใส่ Springapp ไปละกัน
- ตรง Target Runtime เลือก New… แล้วเลือก Server ตามที่ติดตั้งไว้ในเครื่องหรือถ้าลงตามที่บอกให้เตรียมไว้ด้านบนก็ Apache Tomcat v.5.5 กด Next
- ช่อง JRE เลือก Installed JREs เพื่อเปลี่ยนจาก JRE เป็น JDK จะได้ไม่มีปัญหาตอนรัน
- เลือก Add ช่อง JRE Home Directory ก็กด Browse แล้วเลือกไปที่ JDK
- กด OK, OK, Finish ก็จะได้ Project มาอันนึง
Step2 ไฟล์ index.jsp
- คลิกขวาที่ Directory WebContent ใน Project ที่เราสร้างใหม่อ่ะนะ (อาจเป็นชื่ออื่นแล้วแต่เราสร้างตอนสร้าง Project) เลือก New -> JSP
- ใส่ชื่อไฟล์ว่า index.jsp
- พิมพ์ไปในไฟล์ตามโค้ดด้านล่าง
<html> <head> <title>Example :: Spring Application</title> </head> <body> <h1>Example - Spring Application</h1> <p>This is my test.</p> </body> </html>
- เซฟไฟล์
Step3 ทดสอบ
- คลิกขวาที่ไฟล์ index.jsp แล้วเลือก Run As -> Run on Server
- Server runtime เลือกเป็น Apache Tomcat v5.5 กด Set server as project default
- เลือก Finish
- รอมันรันแล้วก็ดูผลลัพธ์ได้เลย
Step4 ดาวโหลด Spring ดาวโหลด Spring package มาซะจากเว็บ http://sourceforge.net/project/showfiles.php?group_id=73357&package_id=173644&release_id=452461
Step5 จะใช้ 1.2 หรือ 2.0 ก็ได้อ่ะ แต่ผมใช้ 2.0 นะ ^ ^
Step5 แก้ไขไฟล์ web.xml ให้รู้จัก Spring ซะ
- ไปที่ไฟล์ web.xml ใน Directory WEB-INF เปิดออกมาแล้วเพิ่มโค้ดสีแดงตามด้านล่างลงไป
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <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>*.htm</url-pattern> </servlet-mapping> <display-name>springapp</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file>l </welcome-file-list> </web-app>
- สร้างไฟล์ springapp-servlet.xml (มันคือ spring context สำหรับ web app นั่นเอง) แล้วใส่โค้ดตามด้านล่างลงไป
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <!--- Application context definition for "springapp" DispatcherServlet--> <beans> <bean id="springappController" class="SpringappController" /> <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/hello.htm">springappController</prop> </props> </property> </bean> </beans>
Step6 Copy spring library ไปที่ lib ของ web app Copy ไฟล์ spring.jar จาก spring-framework-2.0/dist/spring.jar ไปที่ Workspaces/springapp/WebContent/WEB-INF/lib/ จากนั้นเข้ามาใน eclipse แล้วกด F5 refresh ให้ library มันโชว์ขึ้นมาหน่อย
Step7 สร้าง Controller
- คลิกขวาที่ Java Resources : Src เลือก New -> Class
- ช่อง Name ใส่ SpringappController
- ที่ช่อง Interface เลือก Add จากนั้นพิมพ์ Controller แล้วกด OK
- จากนั้นกด Finish แล้วเขียนโค้ดเพิ่มตามด้านล่างลงไป จากนั้นเซฟไฟล์
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 arg0, HttpServletResponse arg1) throws Exception { // TODO Auto-generated method stub return new ModelAndView(""); } }
Step8 สร้าง View และแก้ไข Controller อีกนิดหน่อย
- คลิกขวาที่ WebContent แล้วเลือก New -> JSP ใส่ชื่อไฟล์เป็น hello.jsp แล้วใส่ code ด้านล่างลงไป
<html> <head> <title>Example :: Spring Application</title> </head> <body> <h1>Hello - Spring Application </h1> <p>Greetings.</p> </body> </html>
- แก้ไข SpringappController ตามโค้ดด้านล่าง แล้วเซฟ
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 arg0, HttpServletResponse arg1) throws Exception { // TODO Auto-generated method stub return new ModelAndView("hello.jsp"); } }
- ไปที่ tab server ด้านล่างลบออก ส่วนด้านขวาก็ลบ project Servers ออก
- คลิกขวาที่ springapp project เลือก Run As -> Run on Server
- จากนั้นเปิดเว็บบราวเซอร์ แล้วลองเข้าเว็บ http://localhost:8080/hello.htm ถ้าเข้าได้ก็ผ่านแล้ว