今天寫一個struts2的例子,目的是為了讓大家明白struts2的基本流程,其實框架沒有大家想象的那麼難,說白了struts2的本質就是一個大的Servlet,即原本需要提交到Servlet處理的部分現在通過配置文件將其交給普通的Class類進行處理。
首先新建一個javaWeb項目,然後把struts2所依賴的包導入到lib下(可以百度一下也可以直接到官網上下載),然後在web.xml中對struts2進行配置,添加的內容如下:
<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>
在index.jsp中寫如下代碼:
1 <form method="post" action="testAction"> 2 名稱:<input type="text" name="name"/> 3 <input type="submit" value="提交"/> 4 </form>
接下來是寫struts的配置文件struts.xml,內容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="testaction" namespace="/" extends="struts-default">
<action name="testAction" class="com.struts.action.TestAction">
<result name="success">/success.jsp</result>
<result name="error">/index.jsp</result>
</action>
</package>
</struts>
其中一個action對應一個響應,在index.jsp中action="testAction"所以此處action的name="testAction"這是一一對應的關系。然後此處的class對應的則是交給誰去處理,根據配置文件我們在com.struts.action包中新建一個TestAction的類,此類的內容如下:
package com.struts.action;
public class TestAction {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute(){
if ("username".equals(name)) {
return "success";
} else {
return "error";
}
}
}
在這裡我們需要寫一個返回值為String類型的execute方法,這裡的return對應struts.xml中的result的name屬性,而struts.xml中的result的內容這對應相應的頁面。
這裡的字段名稱則是對應index.jsp中的name,一般我們在servlet中是用request.getParameter("name")得到的,但是在struts2中我們只需要把字段封裝一下,剩下的交給struts2去做。
當然還有一個問題就是execute方法是默認的方法,如果我們的方法名稱不為execute則需要在struts.xml中的action中加一個屬性:method="對應方法名稱",這樣struts2就會調用對應類的對應方法。
在TestAction中的第12行這裡我只是進行了簡單的判斷,大家可以根據自身情況連接數據庫來做一個登陸的例子鍛煉一下。
推薦閱讀:
Struts中異步傳送XML和JSON類型的數據 http://www.linuxidc.com/Linux/2013-08/88247.htm
Struts2的入門實例 http://www.linuxidc.com/Linux/2013-05/84618.htm
Struts2學習筆記-Value Stack(值棧)和OGNL表達式 http://www.linuxidc.com/Linux/2015-07/120529.htm
struts2文件上傳(保存為BLOB格式) http://www.linuxidc.com/Linux/2014-06/102905.htm
Struts2的入門實例 http://www.linuxidc.com/Linux/2013-05/84618.htm
Struts2實現ModelDriven接口 http://www.linuxidc.com/Linux/2014-04/99466.htm
遇到的Struts2文件下載亂碼問題 http://www.linuxidc.com/Linux/2014-03/98990.htm
Struts2數據驗證機制 http://www.linuxidc.com/Linux/2016-10/135995.htm
Struts2整合Spring方法及原理 http://www.linuxidc.com/Linux/2013-12/93692.htm
Struts2 注解模式的幾個知識點 http://www.linuxidc.com/Linux/2013-06/85830.htm
Struts 的詳細介紹:請點這裡
Struts 的下載地址:請點這裡