Struts2系列之一:构建struts2项目

Struts2系列之二:页面传值
Struts2系列之三:注解式Action


1. 新建一个Maven Project

2. 在pom.xml文件中加入struts2等依赖:
  <properties>
    <struts2.version>2.3.15.1</struts2.version>
    <testng.version>6.4</testng.version>
  </properties>
  
  <dependencies>
    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts2-core</artifactId>
      <version>${struts2.version}</version>
    </dependency>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>${testng.version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

Eclipse等IDE工具会帮我们加入struts2的依赖项:


3. 配置web.xml
  
加入下面的配置段:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="mystruts2" version="2.5">
  <display-name>MyStruts2 Web Application</display-name>

  <filter>
  	<filter-name>struts2</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <!-- The below filter class was deprecated since Struts 2.1.3 -->
  <!--<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>-->  

  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern><!-- 可以写成*.action,不能写成/*.action -->
  </filter-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>


4. 配置struts.xml

把struts.xml放到类根目录下,并加入下面的配置段:
<?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>
  <constant name="struts.action.extension" value="do,action,"/>
  <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
  <constant name="struts.multipart.maxSize" value="20701096"/>

  <package name="helloworld" namespace="/hw" extends="struts-default">
    <action name="first" class="com.john.struts2.HelloWorldAction" method="hello">
      <result name="success">/WEB-INF/main.jsp</result>
    </action>
  </package>
</struts>

注:
a. package的namespace是可选属性,值一般以'/'开头。如果设定,有该前缀的请求才会分发到此package处理;否则,该package匹配任意前缀。
b. extends属性必须指定,否则运行时报错。可以使用自定义的package或struts-default(Struts2预定义)。
c. action的 name属性不能加前缀'/',否则请求会报404错误。也是构成请求url的一部分。

HelloWorldAction.java:
public class HelloWorldAction {
	public String hello() {
		return "success";
	}
}


main.jsp:
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>


5. 运行该工程,在地址栏输入http://localhost:8080/mystruts2/hw/first.do,查看效果。



普通Web工程的配置:
①. 新建一个Dynamic Web Project

②. 加入依赖包(版本可能不同):

   struts2-core-2.1.8.jar
   xwork-core-2.1.6.jar
   commons-fileupload-1.2.1.jar
   commons-io-1.3.2.jar
   commons-logging-1.0.4.jar
   freemarker-2.3.15.jar
   ognl-2.7.3.jar

   最好是把它们加到/WEB-INF/lib/目录中,这样Web server启动时容易找到。

猜你喜欢

转载自czj4451.iteye.com/blog/1498582