Maven+Struts2初試

1、Maven

Maven項目對象模型(POM),能夠經過一小段描述信息來管理項目的構建,報告和文檔的軟件項目管理工具。html

這裏用Maven來控制jar包的引入,以前一直使用手動考入的方式來控制,後來發現了Maven,愛不釋手,就一直沒停過,以爲很方便。java

 

2、Struts2

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

 

3、搭建

一、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>
View Code

三、配置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>
View Code

這裏要注意:因爲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>
View Code

五、新建相關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 }
View Code

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 }
View Code

這裏只是簡單的進行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>
View Code

返回的success.jsp頁面,對於failed的頁面沒作配置,原理同樣,新增頁面和struts的跳轉路勁就行了。

相關文章
相關標籤/搜索