Struts 2 Hello World Example 專案


本範例實作說明:
本篇主要使用 Spring Batch,做一個基本測試專案,
    此Batch 為 讀取csv檔 轉換為 xml檔 的功能。
使用到 Spring Batch 的 ItemReader、ItemProcessor和ItemWriter 。
也將 Spring Batch job metadata 加入 ,但本例不說明(另文說明)。

一、範例開發準備工具
 
作業系統:Windows 7
開發工具:Eclipse Java EE IDE for Web Developers Juno Service Release2
JAVA JDK : JDK1.7.0_60
其它相關:Maven 4.0
 Struts Version 2.3.20

二、新增Maven範例專案
範例專案名稱:Struts2HelloWorldExample


圖1 開啟Eclipse -> File -> New -> Maven Project



圖2 選擇專案存放位置 use default Workspase location-> Next
   選擇存放在預設的工作資料夾下(就是你開Eclipse時,選擇Workspase下)


圖3 使用 Maven 範本
   本例選用:
Group id : org.apache.maven.archetypes
Artifact id : maven-archetype-webapp
Version : RELEASE
   -> Next
註:
Group id為公司名稱 or 群組分類名稱
Artifact Id 為專案標識符,就是專案名稱



圖4 範例專案
Group id : Struts2HelloWorldExample
Artifact id : Struts2HelloWorldExample
Version : 0.0.1-SNAPSHOT
Package : com.levin
     
-> Finish


圖5 新增專案後,基本預設資料


三、使用相關jar檔

圖6 開啟 pom.xml


pom.xml內容:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Struts2HelloWorldExample</groupId>
<artifactId>Struts2HelloWorldExample</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>Struts2HelloWorldExample Maven Webapp</name>
<url>http://maven.apache.org</url>

<properties>
<jdk.version>1.6</jdk.version>
<struts2.version>2.3.20</struts2.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<!-- struts2 http://mvnrepository.com/artifact/org.apache.struts -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts2.version}</version>
</dependency>

</dependencies>
<build>
<finalName>Struts2HelloWorldExample</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>


註:主要struts2 JAR
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts2.version}</version>
</dependency>



四、建立Struts2資訊檔 Struts.xml

檔案路徑:src/main/resources/struts.xml
圖7 Struts.xml


Struts xml file 檔內容:

<?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="user" namespace="/User" extends="struts-default">
<action name="Login">
<result>pages/login.jsp</result>
</action>

<action name="Welcome" class="com.levin.user.action.WelcomeUserAction" >
<result name="SUCCESS">pages/welcome_user.jsp</result>
</action>

</package>

</struts>



註:
1. package name=”user”
這是一個package 名稱。

2. namespace=”/User”
   這是用來設定匹配URL,使用此項設定。
 
3. extends=”struts-default”
   這是延伸使用預設的套件和攔截器
   而這struts-default.xml中的文件,
   位於struts2-core.jar的根目錄下。

五、相關java程式
檔案路徑: src/main/java/com/levin/user/action/WelcomeUserAction.java
圖8 WelcomeUserAction.java程式



程式內容:

package com.levin.user.action;

import com.opensymphony.xwork2.ActionSupport;

public class WelcomeUserAction extends ActionSupport {

private static final long serialVersionUID = 2374390320744044803L;
private String username;

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String execute() {
return "SUCCESS";
}
}




註: ActionSupport 是提供一些方便的常數及方法。
import com.opensymphony.xwork2.ActionSupport
這也可以不用 extends ActionSupport。

六、相關jsp程式及web.xml設定
jsp檔案路徑:
src/main/webapp/User/pages/login.jsp
src/main/webapp/User/pages/welcome_user.jsp
src/main/webapp/index.jsp
web.xml檔案路徑:
src/main/webapp/WEB-INF/web.xml
圖9



七、index.jsp程式
首頁連結用的。
程式內容:

<html>
<body>
<h1>Struts 2 Hello World Example !</h1>
</body>
</html>



八、login.jsp程式
測試struts的頁面。
輸入帳號及密碼,這裡無檢核。可以任意輸入。
程式內容:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<body>
<h1>Struts 2 Hello World Example !</h1>

<s:form action="Welcome">
<s:textfield name="username" label="Username"/>
<s:password name="password" label="Password"/>
<s:submit/>
</s:form>

</body>
</html>


註:
此為設定使用struts tag
<%@ taglib prefix="s" uri="/struts-tags" %>


九、welcome_user.jsp程式
顯示登入的使用者名稱
程式內容:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<body>
<h1>Struts 2 Hello World Example !</h1>
<h4>Hello <s:property value="username"/></h4>
</body>
</html>


十、web.xml
這裡設定struts2 相關的filter。
此需要設定才能在網頁上使用到struts
程式內容:

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
<display-name>Struts2 Hello World</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>


十一、使用Tomcat server 測試

圖10 在專案按右鍵-> Run As -> Run on Server


圖11 選擇Tomcat server -> Finish


圖12 啟動 檢查是否有錯誤訊息


圖13 進入首頁
http://localhost:8081/Struts2HelloWorldExample/


圖14 進入登入頁
http://localhost:8081/Struts2HelloWorldExample/User/Login


圖15 輸入 username 、 password 後submit
這裡 任意輸入


圖16 顯示 結果。
看到 Hello 你輸入的名稱 ,那就是Struts2基本設定 成功了




十二、其它相關教學
Struts + Spring + Hibernate 目錄

[Maven] Maven 下載及安裝教學

[Maven]  Eclipse 裡 Maven 安裝教學

[Apache_Tomcat] Tomcat 安裝教學

[Apache_Tomcat] Eclipse 裡Tomcat 安裝教學

 


















其它文章

 
arrow
arrow
    文章標籤
    Struts 2
    全站熱搜

    PG Levin Li 發表在 痞客邦 留言(0) 人氣()