Struts Framework 2 – ตัวอย่าง Application ตอนที่ 1

เริ่มเบื่อ Hello world แล้วก็ bookstore แล้ว ลองอย่างอื่นทำดีกว่า คราวนี้ลองมาเขียนโปรแกรมติดต่อฐานข้อมูลดีกว่า จะได้ดูดีขึ้นมาหน่อย ตัวอย่างที่เหมาะกับเรื่องนี้ก็คือ Web board หวังว่าคงเคยใช้งานกันมาบ้าง อารมณ์เหมือน Post บน Facebook แล้วมีคนมา comment
สิ่งที่จำเป็นในบทความนี้คือ

  1. ทำขั้นตอนติดตั้ง Project ให้ผ่านก่อน เพื่อที่จะได้นำเอาโครงสร้าง Project นั้นมาใช้งานต่อ
  2. ติดตั้ง MySQL 5.5 (เวอร์ชันล่าสุดตอนที่เขียนบทความนี้) และดาวโหลด Driver MySQL มาด้วย (Connector/J 5.1) หรือหากใครมีความสามารถที่จะใช้ของเจ้าอื่นและเขียนติดต่อกับฐานข้อมูลเป็นก็สามารถใช้แทนกันได้


Step เตรียมพร้อม

  1. สร้าง Dynamic Web Project โดยเลือกเมนู File -> New -> Project… แล้วพิมพ์ Dynamic ก็จะขึ้นมาให้เลือก
  2. ตั้งชื่อ Project ว่า webboard แล้วกด Next สองที แล้วทำเครื่องหมายถูกหน้าคำว่า Generate web.xml deployment descriptor แล้วกด Finish
  3. ไปที่ Project bookstore ให้ทำการ copy ไฟล์ทั้งหมดใน WEB-INF/lib มาไว้ที่ Project webboard ตำแหน่งเดียวกัน
  4. Copy ไฟล์ web.xml ของ Project bookstore มาไว้ที่ Project webboard (ถ้ามี dialog ถามว่าให้ทับไฟล์เดิมหรือเปล่าให้ตอบ Yes ถ้าไม่มีแสดงว่าวางผิดตำแหน่ง)
  5. Copy ไฟล์ struts.xml และ example.xml ที่ตำแหน่ง src ของ Project bookstore มาไว้ที่ src ของ Project webboard
  6. Copy ไฟล์ index.html ที่ตำแหน่ง WebContent ของ Project bookstore มาไว้ที่ WebContent ของ Project webboard

จบพิธีการเตรียม Project เพื่อเตรียมให้รัน Struts 2 ได้
ตรวจสอบให้ดีว่าไฟล์ครบดังรูปหรือไม่ (อย่าลืมปรับ Perspective ให้เป็น Java นะ จะได้เหมือนกัน)
1 - must have file

ลงมือเขียน

  1. เปลี่ยนชื่อไฟล์ example.xml เป็น webboard.xml โดยการคลิกสองครั้งหรือ คลิกขวาที่ไฟล์แล้วเลือก Refactor -> Rename…
  2. เปิดไฟล์ webbord.xml ที่ได้จากขั้นตอนที่ 7) ขึ้นมา แล้วหาบรรทัดนี้
    <package name="example" namespace="/example" extends="default">

    ให้เปลี่ยนคำว่า exampleเป็น webboardแล้วกดบันทึก
    แล้วลบ Tag ที่อยู่ข้างใน tag packageให้หมดก็จะได้ไฟล์หน้าตาดังนี้

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
            "http://struts.apache.org/dtds/struts-2.0.dtd">
    
    <struts>
    
        <package name="webboard" namespace="/webboard" extends="default">
    
        </package>
    </struts>
     
  3. เปิดไฟล์ struts.xml หา tag นี้แล้วลบข้างใน tag ออก
    <action name="index">
         <result type="redirectAction">
              <param name="actionName">HelloWorld</param>
              <param name="namespace">/example</param>
         </result>
    </action>
    

    แก้ให้เป็น

    <action name="index">
      <result>/main.jsp</result>
     </action>

    และเปลี่ยนค่าของ Tag

    <include file="example.xml"/>

    เป็น

    <include file="webboard.xml"/>
  4. สร้างไฟล์ main.jsp ไว้ที่ WebContent เปิดไฟล์นี้ขึ้นมาแล้วพิมพ์

    Hello World!

    ไว้ข้างใน Tag body

  5. เปิดไฟล์ index.html แล้วแก้
    <META HTTP-EQUIV="Refresh" CONTENT="0;URL=example/HelloWorld.action">

    ให้เป็น

    <META HTTP-EQUIV="Refresh" CONTENT="0;URL=webboard/index.action">
  6. คลิกขวาที่ไฟล์ index.html เลือก Run As -> Run on Server ถ้าพบหน้าจอดังรูปแสดงว่า การ Setup Struts 2 ได้แล้ว
    2 - first run test

    ถ้าหากไม่ขึ้นดังนี้ ข้อแสดงความเสียใจด้วย เพราะว่าต้องเริ่มทำใหม่ตั้งแต่ต้น

ปล. หากทำตามแล้วไม่ผ่าน

  1. ให้โหลดไฟล์นี้ http://www.4shared.com/file/vt1daoAt/webboard_ch1.html
  2. ไปที่ Eclipse แล้วเลือกเมนู File -> Import… แล้วเลือก General -> Existing Projects into Workspace
  3. เลือกรายการ Select archive file: แล้วชี้ไปที่ตำแหน่งที่ดาวโหลดมา แล้วกดปุ่ม finish ที่เหลือก็แก้ Config เรื่อง JDK และ Tomcat ก็ผ่านจะผ่านแล้ว

หรือจะเลือก New Dynamic Web Project จากนั้นแตก zip แล้วก็อปไฟล์ไปวาง

2 thoughts on “Struts Framework 2 – ตัวอย่าง Application ตอนที่ 1

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s