Struts 2 hello world (XML版本)
在這個例子中,我們將學習如何在Struts 2中創建一個Hello World例子。
使用以下庫或工具:
- MyEclipse 10
- Struts 2.1
整個工程結構如下圖所示:
1. 創建一個Web項目工程
啓動打開 MyEclipse,創建一個Web工程名稱爲:struts2-xml-demo,選擇 File -> New -> Web Project ,如下圖所示:
在這個項目上添加 struts2 的支持,右鍵點擊 struts2-xml-demo 工程,選擇 MyEclipse -> Add Struts Capabilities,在彈出的對話框中選擇 Strut 2.1,如下圖所示:
2. JSP視圖文件
這是一個JSP登錄頁面,它使用Struts2標籤來顯示用戶名,密碼輸入框和提交按鈕。
Fie : login.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
Struts 2 Hello World Example
<s:form action="Welcome">
<s:textfield name="username" label="Username" />
<s:password name="password" label="Password" />
<s:submit />
</s:form>
文件: welcome_user.jsp – 一個JSP視圖用來頁面顯示歡迎信息給用戶。
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
Struts 2 Hello World 示例
<h2>
Hello
<s:property value="username" />
</h2>
對 Struts1 和 Struts2 有非常相似的UI標籤語法,只是在命名HTML元素,例如,術語有一點不同:
Struts 1
<%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html:form action="Welcome">
<html:text property="username"/>
Struts 2
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:form action="Welcome">
<s:textfield name="username" label="Username"/>
5. 動作,所有的業務邏輯放在這裏
一個簡單的 Struts2 的 Action 類,它裏面聲明的所有業務邏輯。
File : WelcomeUserAction.java
package com.yiibai.user.action;
/**
*
* @author yiibai.com
*
*/
public class WelcomeUserAction {
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
// all struts logic here
public String execute() {
return "SUCCESS";
}
}
在Struts2中,Action類實現任何接口或擴展任何類不是必需的,但它需要創建一個execute()方法來實現所有的業務邏輯,並返回一個字符串值,告訴用戶重定向到哪裏。
注意
您可能會看到一些用戶實現 com.opensymphony.xwork2.Action 類, 但它是完全可選的(不是必須的),因爲com.opensymphony.xwork2.Action只是提供一些方便的常量。
Struts1中的Action類需要擴展org.apache.struts.action.Action。 但是,Struts 2的Action類是可選的,但是仍然允許執行com.opensymphony.xwork2.Action的一些方便的常量,或者擴展com.opensymphony.xwork2.ActionSupport 對於一些常見的默認動作執行的功能。
5. Struts配置文件
Strut配置文件是用來連接所有的東西在一起。 XML文件名必須是 「struts.xml」。在這個實例中,它位於
File : struts.xml
聲明包和包含動作類,動作類是不言自明的,但你仍可能會感興趣下面的新標籤:
1. package name=」user」
就在包名,並不真正去關心它。
2. namespace=」/User」
它用於匹配「/User」URL模式。
注意
實際上,Struts2的命名空間相當於Struts的1多個功能模塊
3. extends=」struts-default」
這意味着該包是擴展了struts-default 包組件和攔截器,這是在struts-default.xml中文件中聲明的,位於struts2-core.jar 文件的根目錄。
6. web.xml
配置Web應用程序部署描述符(web.xml)文件Struts2的集成到Web項目。
File web.xml
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
*
7. 運行測試結果
在Struts2中,可以直接使用.action後綴訪問操作類。如下URL:
http://localhost:8080/struts2-xml-demo/User/Login.action
提交後到 http://localhost:8080/Struts2Example/User/Welcome.action 顯示如下: