Maven2下第一个Struts2简单实例
?????? 本人准备在将来的日子里发布一部Maven2 + Struts2 + EJB3的实例系列,希望对大家有用。
?????? 为什么不使用GWT,事实上我正准备写一篇关于“什么时候不要使用GWT”的博文,GWT能在某些应用中表现在极其出色的性能,但始终有着它巨大的缺陷,在这里暂时不会对此发表长篇大论,如果大家有兴趣,可在不久的将来在本博客中看到。
?????? 为什么要写关于Struts2的文章,是因为Struts1在大陆有着很成熟的应用体系,相关的教程更是数不尽数,Struts2虽然不是Struts1的升级版,但在很多方面却保留着Struts1的特性,但更引入了WebWork的优秀性能,在此我绝不以贬义的态度看待Struts的借壳,反而我更赞赏他们的态度,知道不行了就坚决改正,不管是不是把自己的老本都丢掉,如果为了面子问题而知错不改,那才叫真正的死亡,类似的例子还有EJB3,与EJB2有着天壤之别,将许多hibernate的持久化特性引入,虽然很多人都骂EJB3抄袭hibernate不是君子所为,但它所带来的优点却是显而易见的,我依然十分欣赏它,虽然它己经不是原来的它,进化才是硬道理。
?????? 好了,不说费话了,下面看Maven2下Strtus2的配置实例。
?????? 还是发扬风格,目录结构先贴出来
|--pom.xml
|--src
??? |--main
??????? |--java
??????????? |--com
??????????????? |--mydomain
??????????????????? |--HelloWorld.java
??????? |--resources
??????????? |--struts.xml
??????? |--webapp
????????????|--index.jsp
??????????? |--WEB-INF
??????????????? |--web.xml
在这里,我们只需写一个java(HelloWorld.java)文件与一个简单的jsp页面,配置两个文件(Struts.xml与web.xml),这几个文件的代码都将在后面贴出,同时还会先将pom.xml贴出
下面就是pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.aidress</groupId> <artifactId>web</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>AiDress Web Project</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!--这里下面的两个dependency, servlet-api与jsp-api所需--> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency> <!--要使用Struts2,这里只需struts2-core一个包即可,至于另外几个所需的jar包,由于Struts2--> <!--依赖于它们,所以不用在pom中显示声明,maven会自动帮你下载其它所需的包--> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.0.11.2</version> </dependency> </dependencies> <build> <finalName>web</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <configuration> <source>1.5</source> <target>1.5</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.2</version> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build></project>
?
?
下面是HelloWorld.java的源码
==============================
import com.opensymphony.xwork2.ActionSupport;/** * * @author Dao */public class HelloWorld extends ActionSupport{ private static final String MESSAGE = "Struts is up and running..."; private String message; public HelloWorld() { } @Override public String execute() throws Exception { setMessage(MESSAGE); return SUCCESS; } public void setMessage(String message) { this.message = message; } public String getMessage() { return this.message; }}?
?
下面是index.jsp
====================================
<%@ page contentType="text/html;charset=utf-8" %><%@ taglib prefix="s" uri="/struts-tags" %><html> <head> <title> 第一个Struts2实例 </title> </head> <body> <h2> <s:property value="message" /> </h2> </body></html>
?
?
下面是sturts.xml
====================================
<?xml version="1.0" encoding="UTF-8"?><!-- Document : struts.xml Created on : September 17, 2008, 9:39 PM Author : Dao Description: Purpose of the document follows.--><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"><struts> <package name="tutorial" extends="struts-default"> <action name="HelloWorld" name="code"><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app> <display-name>AiDress Web Project</display-name> <filter> <filter-name>Struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>Struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>
?
?
就这样,运行mvn install可获得一个web.war包,将其放于jboss(4.2以上版本才支持EJB3,所以建议使用4.2以上的jboss版本)的server/default/deploy目录下,运行jboss
然后在网址上访问
http://localhost:8080/web/HelloWorld.action
如果正常的话,你将会在网页上看到下面一行字
Struts is up and running...
1 楼 KimHo 2008-11-02 先支持一下.本人最近也在学习struts2和ejb3
问下,Maven2是什么来的? 2 楼 kfc_davy 2008-12-18 才开始看maven2 try下