今天在作一個Struts2的簡單實例,樓主看的是大學教科書-《JavaEE基礎實用教程》第三章的例子。
因爲書有些老了,加上Struts框架又作了一些更新。因此有些地方須要拿出來講下,讓新人夥伴們能少走點彎路,更不要~~由於運行後的報錯會灰心喪氣放棄學習的信心~
配置:win8+myeclipse10+tomcat7html
步驟一. 下載Struts2框架
版本均可以的~
下載地址:struts-2.3.14-all.zipjava
步驟二. 創建一個web項目
打開myeclipse-File-new-Web Project-Struts2.0web
步驟三. 加載Struts2基本類庫
書上原話是:先下載Struts的jar包(myeclipse10已經對Struts內部集成了,實際上是能夠直接系統導入的,這裏咱們先按原始方法來)。書上介紹的是要用到Struts2的5個主要類庫:apache
時過境遷,2016了都。再用這5個咱們就會發現報了一堆的錯誤~,上網查閱了一下,基礎包變多了~
這張圖是基於個人程序添加的包,小夥伴們遇到報錯也不用慌,報錯信息複製下,看百度上說少什麼包~~導入什麼包就成了。真不行一個笨方法~把Struts-lib下面全部的包都放進去。至於包的導入方法,我建議直接把要導入的包,ctrl-c複製後,來到項目的-WebRoot-WEB-INF-lib,點lib–ctrl-v,應該會跳出來一個提示,建議選擇直接copy,不要複製路徑~。配置環境的坑爹工做作完了。下面來看~代碼tomcat
步驟四. 修改web.xml文件(項目建立默認有web.xml)markdown
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <welcome-file-list> <welcome-file>hello.jsp</welcome-file> </welcome-file-list> <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>
須要的注意的點,參考自-ALCAT-博客app
這裏面填入的類, 2.1.3版本後改用框架
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
2.13以前的版本用的仍是,請夥伴們考慮清楚~eclipse
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
Since Struts 2.1.3, use StrutsPrepareAndExecuteFilter instead or StrutsPrepareFilterand StrutsExecuteFilter if needing using the ActionContextCleanUp filter in addition to this one..即,從Struts 2.1.3起FilterDispatcher已被標註爲過期的,改用StrutsPrepareAndExecuteFilter。jsp
步驟五. 建立hello.jsp文件(WebRoot-new-jsp-hello.jsp)
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Struts2應用</title> </head> <body> <form action="struts.action" method="post"> 請輸入姓名:<input type="text" name="name"/><br> <input type="submit" value="提交" /> </form> </body> </html>
步驟六. Action實現類(src-new-class,PackageName:org.action–className:StrutsAction)
package org.action; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class StrutsAction extends ActionSupport { private String name; public String getName(){ return name; } public void setName(String name){ this.name = name; } public String execute() throws Exception{ if(!name.equals("helloworld")){ Map request = (Map)ActionContext.getContext().get("request"); request.put("name",getName()); return "success"; }else{ return "error"; } } }
步驟七. 建立並配置struts.xml文件
配置strust2要調用的action。直接新建在src目錄下,那樣部署的時候會自動發佈到WEB-INF/classes目錄下,或者直接建立在WEB-INF/classes目錄下面。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="default" extends="struts-default"> <action name="struts" class="org.action.StrutsAction"> <result name="success">/welcome.jsp</result> //成功跳轉welcome.jsp <result name="error">/hello.jsp</result>//錯誤轉到welcome.jsp </action> </package> </struts>
其中,package元素,做用相似於Java包的機制,他是用於分門別類的一個工具,extends屬性如他的名字同樣,它繼承了struts-default這個包的全部信息,通常咱們本身建立一個包最好都繼承它,由於他爲咱們提供了絕大部分的功能,你能夠在struts2-core的jar包中的struts-default.xml文件中找到這個包。action元素對應與你的表單,例如你的表單的action=」welcome」,那麼該表單提交後就會將參數交予action的name=」welcome」的實現類處理。result元素爲action的結果,它由動做類返回的控制字段選擇。
步驟八.建立welcome.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!-- @taglib代表引用標籤 prefix="s" 引用的名稱在頁面可使用,就像java中生成的一個對象名,之後調用的時候直接使用<s:xxx/>就能夠了,uri="/struts-tags"%表示標籤庫的路徑。至關於import一個具體的類 --%> <%@ taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE> <html> <head> <title>strust2應用</title> </head> <body> hello <s:property value="#request.name"/>! </body> </html>
步驟九. 部署和運行
部署後運行tomcat,」http://localhost:8080/Struts2.0/hello.jsp「.
- 輸入helloworld會從新回到hello.jsp
- 輸入非helloworld的數值,會跳轉到welcome.jsp.
引用文獻:
Struts2入門示例教程
——————————-我是分割線———–2016.3.24午—————
至此,簡單的Struts2實例的步驟方法介紹完畢.(具體語法,小白樓主研究後會慢慢添加註釋~) 有疑問的小夥伴,歡迎留言~