Struts入门心得

本文来自慕课网:Struts2入门  ,网址:http://www.imooc.com/learn/464

使用Eclipse基于Maven的Struts2 调试心得

1.从 Maven 下载依赖包

有关如何在Eclipse中配置Maven请看Spring MVC 入门调试心得,这里不再赘述。

 

(1)通过配置 Maven 的依赖下载文件 pom.xml,下载以下几个开发Struts2 的必备jar包。

groupId :org.apache.struts

artifactId : struts2-core

version : 2.3.24.1

groupId : commons-logging

artifactId : commons-logging

version : 1.1.3

 

(2)pom.xml 的完整配置如下:

<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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"
       >
 <modelVersion>4.0.0</modelVersion>
 
 <groupId>jackson_study</groupId>
 <artifactId>struts2_study</artifactId>
 <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
 
 <name>struts2_study</name>
 <url>http://maven.apache.org</url>
 
  <properties>
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
 
  <dependencies>
    <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>3.8.1</version>
     <scope>test</scope>
    </dependency>
    <dependency>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-core</artifactId>
         <version>2.3.24.1</version>
    </dependency>
    <dependency>
         <groupId>commons-logging</groupId>
         <artifactId>commons-logging</artifactId>
         <version>1.1.3</version>
    </dependency>
  </dependencies>
</project>




 

2.web.xml文件的配置

在web.xml中需要添加两个节点,分别是filter和filter-mapping,主要是将 filter-mapping中的url-pattern中拦截的内容交给对应的filter去处理。这里filter和filter-mapping类似 servlet中的servlet 和servlet-mapping 这两个属性

 

(1)filter中需要添加两个子节点,分别是filter-namefilter-class

filter主要是用于接收对应的filter-mapping所拦截的URL,并将其交给filter-class处理。filter与filter-mapping对应关系主要由filter中的filter-name和filter-mapping中的filter-name相匹配。这里filter-name 和 filter-class 类似 servlet中的 servlet-name 和 servlet-class。

① 这里配置filter-name是struts2,这个并不是唯一的。

② 这里配置filter-class是

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

,这个是默认的拦截器,以后还可以自定义拦截器。

 

(2)filter-mapping中需要添加两个子节点,分别是filter-name 和 url-pattern。filter-mapping主要是用于拦截相应的URL,并交给相应的filter处理。其中,url-pattern匹配URL的样式,“/*”表示匹配所有的URL样式。

① 这里配置的filter-name应和(1)中配置的filter-name相同,是struts2。

② 这里配置url-pattern/*

 

(3)web.xml的完整配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-appversion="2.4"
       xmlns="http://java.sun.com/xml/ns/j2ee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
       http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <display-name>Struts2 MVCStudy</display-name>
 
  <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>


 

3.struts.xml文件的配置

 

1)配置struts.xml文件的主节点struts前应先加载struts的dtd文件。加载位置位于xml文件头声明和struts节点中间,内容如下:

<!DOCTYPE struts PUBLIC
 
       "-//Apache Software Foundation//DTD Struts Configuration2.3//EN"
 
       "http://struts.apache.org/dtds/struts-2.3.dtd">


 

(2)配置struts节点

struts节点需要配置package节点,package节点中需要配置action节点,action节点中需要配置result节点。具体来说就是:

<struts>
       <package>
              <action>
                     <result>
              </action>
       </package>
</struts>


接下来将具体介绍package,action,result 节点的配置。

 

(3)配置package节点

package节点有三个属性:namenamespaceextends

① name属性配置的值为:default。

② namespace属性是配置要访问相应的.action页面的路径名,比如:namespace需要配置值为“/test”,此时访问也需要加上属性namespace的值,这里需要加上“/test”。“/”代表根路径。

③ extends属性配置的值为:struts-default。

 

(4)配置action节点

action节点有两个属性:nameclass

① name属性配置的是要访问的 .action页面的名称,访问此 .action 页面则会跳转到相应的 class 中进行处理。

② class属性配置的是访问name页面后所要进行处理的类,此处应配置为类的全名(即包括包名)。

 

(5)配置result节点

result节点需要配置name属性和节点文本内容。可以同时存在多个result节点。

① name属性配置的是经过action节点class属性的类处理后返回的字符串的值,根据返回的字符串的值不同,进入不同的result节点并选择不同的页面进行展示。

② 节点文本内容配置的是jsp页面的WebContent下的路径全名。

 

(6)struts.xml文件完整配置如下:

<?xml version="1.0" encoding="UTF-8"?>
 
<!DOCTYPE struts PUBLIC
 
       "-//Apache Software Foundation//DTD Struts Configuration2.3//EN"
 
       "http://struts.apache.org/dtds/struts-2.3.dtd">
      
<struts>
      
       <package name="default"namespace="/test" extends="struts-default" >
              <action name="helloworld"class="jackson_study.struts2_study.HelloWorldAction">
                     <result name="success">/result.jsp</result>
              </action>
       </package>
 
</struts>



 

4.控制器类的编写

控制器类主要是进行业务逻辑,并选择返回的相应的视图显示。此处控制器类需继承com.opensymphony.xwork2.ActionSupport类并重写其中的excute() 方法。

 

(1)新建一个类,并使类全名struts.xml文件中的struts-->package --> action 节点中的class属性的值相同,此类需继承com.opensymphony.xwork2.ActionSupport 类。

 

(2)重写excute() 方法,返回的字符串值struts.xml文件中的struts -->package --> action --> result 节点中的name属性的值相同。此时才能跳转到result指定的界面。

 

(3)控制器类的完整程序如下:

import com.opensymphony.xwork2.ActionSupport;
 
public class HelloWorldActionextends ActionSupport
{
       @Override
       public String execute() throws Exception
       {
              // TODO 自动生成的方法存根
              System.out.println("Excuting Action");
              return SUCCESS;
       }
}



 

5.注意问题

(1)struts.xml文件需保存在src/main/resources/路径下,否则系统可能找不到此配置文件。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值