2015年1月14日 星期三

Struts 2 Hello World Example 專案

Struts 2 Hello World Example 專案


本範例實作說明:
  本篇主要使用 Struts,做一個基本測試專案。

一、範例開發準備工具
 
作業系統: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 安裝教學















其它文章


沒有留言:

張貼留言

標籤

Oracle (150) Oracle DB (144) Oracle_DB (143) Oracle SQL (135) JAVA (84) css-基本類 (65) MySQL (59) CSS Selector (58) jQuery (49) JavaScript-基本類 (39) Spring Boot (38) JavaScript (37) JavaScript HTML DOM (37) JavaScript-HTML_DOM (36) CSS3 (30) JAVA-基本類 (28) jQuery UI (27) Apache (23) Oracle GROUP BY (20) datepicker (20) Android (18) Oracle Date (17) c (17) JAVA-lang套件 (16) Linux (16) Oracle Sub Query (16) Spring-基本類 (16) jQuery-基本類 (16) MySQL-進階系列教學 (15) Android基本類 (14) Grails (14) Oracle join (14) SQLite (13) Spring (13) WIN7-基本類 (13) grails-基本類 (13) linux cent os (13) CKEditor (12) JAVA-流程控制類 (12) JAVA_Spring (12) PHP (11) Spring MVC (11) MySQL-基本系列教學 (10) Notepad (10) Notepad++ (10) SQLite for java (10) Windows (10) c/c++ (10) eclipse (9) jQuery-Selector (9) sqldeveloper (9) DB_Toad (8) JAVA_IDE_Eclipse (8) JavaScript-String類 (8) MySQL DB Toad (8) MySQL-DATE相關 (8) MySQL-函式相關 (8) Spring Bean (8) Android Studio (7) HTML5 (7) Hibernate (7) JAVA-OCWCD (7) JavaScript-陣列類 (7) Docker (6) JAVA-程式分享 (6) JAVA.util套件 (6) JavaScript-數學類 (6) MinGw (6) MySQL-其它類 (6) Servlet (6) centos (6) Apache_Tomcat (5) Apache套件_POI (5) CSS (5) JavaScript-Date物件 (5) JavaScript-其它類 (5) PostgreSQL (5) httpd (5) log4j (5) 基本資訊 (5) 開發工具 (5) CSS Properties (4) Dev-C++ (4) IntelliJ IDEA (4) Oracle DDL (4) Sublime (4) TortoiseSVN (4) apache_Maven (4) Android NDK (3) Eclipse IDE for C/C++ (3) Hibernate-基本類 (3) JAVA-問題 (3) JAVA-綀習分享 (3) JVM (3) Linux 指令 (3) Proxy Server (3) Spring Mobile (3) Spring web (3) Squid (3) VirtualBox (3) maven (3) zk (3) 生活其它 (3) Bootstrap (2) Filter (2) JAVA_IO (2) JAVA_其它_itext套件 (2) JBoss-問題 (2) JSP (2) Jboss (2) Listener (2) MySQL-語法快速查詢 (2) Spring AOP (2) Spring Batch (2) Spring Boot Actuator (2) Spring i18n (2) Subversive (2) Tomcat 8 (2) UML (2) WebJars (2) WinMerge (2) c++ (2) c語言綀習題 (2) jQuery Mobile (2) jQuery-事件處理 (2) jQuery-套件類 (2) putty (2) svn (2) weblogic (2) Apache_JMeter (1) Apache套件_BeanUtils (1) Apache套件_StringUtils (1) Base64 (1) Google API (1) HTML5-基本類 (1) Heap (1) JAVA 7 (1) JAVA SE 、JAVA EE、JAVA ME (1) JAVA 日期 (1) JAVA-OCJP (1) JAVA-WEB (1) JAVA_IDE (1) JAVA其它 (1) JBoss Server (1) JDK (1) JMX (1) JRE (1) Java RMI (1) Java String (1) Joda Time (1) Linux_其它 (1) MySQL教學 (1) Oracle_VirtualBox (1) SQL Server (1) SWT (1) Session (1) Stack (1) Struts 2 (1) Tool (1) ZK Studio (1) csv (1) grails-其它類 (1) jQuery-進階 (1) java mail (1) java web (1) java8 (1) jsoup (1) mockmvc (1) modules (1) tomcat (1) win10 (1) 其它類 (1) 圖片工具 (1) 模擬器 (1) 讀書分享 (1) 開發資訊 (1)

精選文章

初學 Java 的 HelloWorld 程式

撰寫一個JAVA程式 public class HelloWorld{ public static void main(String[ ] args){ System.out.println("我第一支Java程式!!"); } } ...