Maven項目對象模型(POM),能夠經過一小段描述信息來管理項目的構建,報告和文檔的軟件項目管理工具。html
這裏用Maven來控制jar包的引入,以前一直使用手動考入的方式來控制,後來發現了Maven,愛不釋手,就一直沒停過,以爲很方便。java
Struts2是一個基於MVC設計模式的Web應用框架,它本質上至關於一個servlet,在MVC設計模式中,Struts2做爲控制器(Controller)來創建模型與視圖的數據交互。Struts 2是Struts的下一代產品,是在 struts 1和WebWork的技術基礎上進行了合併的全新的Struts 2框架。其全新的Struts 2的體系結構與Struts 1的體系結構差異巨大。Struts 2以WebWork爲核心,採用攔截器的機制來處理用戶的請求,這樣的設計也使得業務邏輯控制器可以與ServletAPI徹底脫離開,因此Struts 2能夠理解爲WebWork的更新產品。雖然從Struts 1到Struts 2有着太大的變化,可是相對於WebWork,Struts 2的變化很小。程序員
因爲是初學的javaweb,而且算是程序員中的大齡了,心比較焦急,開始的時候,一門心思想直接殺入SSH(spring+Struts2+hibernate)或SSM(spring+springMvc+mybatis)框架,可是發現欲速而不達。雖然可以根據網上給的直觀例子,照模照樣的畫葫蘆,可是卻都是些只知其一;不知其二。因此想本身從新一步步來,就先從Struts2開始吧。web
一、eclipse新建maven項目spring
二、修改maven控制jar包pox.xml配置文件,引入相關的Struts2的核心jar包和其餘的jar包apache
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 3 <modelVersion>4.0.0</modelVersion> 4 <groupId>com.mdf</groupId> 5 <artifactId>Struts2Demo</artifactId> 6 <packaging>war</packaging> 7 <version>0.0.1-SNAPSHOT</version> 8 <name>Struts2Demo Maven Webapp</name> 9 <url>http://maven.apache.org</url> 10 <dependencies> 11 <dependency> 12 <groupId>junit</groupId> 13 <artifactId>junit</artifactId> 14 <version>3.8.1</version> 15 <scope>test</scope> 16 </dependency> 17 <!-- 使用maven 引入 struts2 jar包 --> 18 <dependency> 19 <groupId>org.apache.struts</groupId> 20 <artifactId>struts2-core</artifactId> 21 <version>2.3.1.2</version> 22 </dependency> 23 <!-- 引入server-api包 --> 24 <dependency> 25 <groupId>javax.servlet</groupId> 26 <artifactId>javax.servlet-api</artifactId> 27 <version>3.0.1</version> 28 </dependency> 29 </dependencies> 30 <build> 31 <finalName>Struts2Demo</finalName> 32 </build> 33 </project>
三、配置struts.xml文件設計模式
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 4 "http://struts.apache.org/dtds/struts-2.0.dtd"> 5 6 <struts> 7 <package name="Student" namespace="/student" extends="struts-default"> 8 <action name="test" class="com.mdf.action.StudentAction"> 9 <result name="success">/WEB-INF/context/success.jsp</result> 10 <result name="failed">/context/failed.jsp</result> 11 </action> 12 </package> 13 </struts>
這裏要注意:因爲Struts2在讀取配置文件的時候,默認以struts.xml的文件名來讀取。若是這裏本身改變文件名,可能會致使異常出錯。api
class:對應實際的包中的action的class。mybatis
result:對action中的返回值,進行相關的頁面跳轉。app
四、配置web.xml文件
1 <web-app> 2 <display-name>Archetype Created Web Application</display-name> 3 <welcome-file-list> 4 <welcome-file>index.jsp</welcome-file> 5 </welcome-file-list> 6 7 <!-- struts2控制核心 --> 8 <filter> 9 <filter-name>struts2</filter-name> 10 <filter-class> 11 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 12 </filter-class> 13 </filter> 14 <filter-mapping> 15 <filter-name>struts2</filter-name> 16 <url-pattern>/*</url-pattern> 17 </filter-mapping> 18 </web-app>
五、新建相關action類和bean類
action類:
1 package com.mdf.action; 2 3 import com.mdf.bean.Student; 4 import com.opensymphony.xwork2.Action; 5 6 public class StudentAction implements Action{ 7 8 public String execute(){ 9 Student.setName("madifei"); 10 if(Student.getName()=="madifei"){ 11 return "success"; 12 }else{ 13 return "failed"; 14 } 15 } 16 17 }
bean類:
1 package com.mdf.bean; 2 3 public class Student { 4 5 private static String name; 6 private static int age; 7 public static String getName() { 8 return name; 9 } 10 public static void setName(String name) { 11 Student.name = name; 12 } 13 public static int getAge() { 14 return age; 15 } 16 public static void setAge(int age) { 17 Student.age = age; 18 } 19 20 }
這裏只是簡單的進行Struts2的配置,因此bean類和action也只是作了兩個簡單的。
六、新建JSP顯示頁面
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 這是success頁面 11 </body> 12 </html>
返回的success.jsp頁面,對於failed的頁面沒作配置,原理同樣,新增頁面和struts的跳轉路勁就行了。