Eclipse Struts2.5

对于Struts2的配置的教程网上有一大堆,但初次接触Struts2环境的配置难免有点手足无措之感(本人就是如此(⊙﹏⊙)b),下面就初步介绍一下在Eclipse for JavaEE这个IDE下如何配置Struts2.5这个版本吧。

Struts2和Tomcat下载链接

Struts2下载:http://struts.apache.org/download.cgi
Tomcat下载:http://tomcat.apache.org
从官网上下载后,直接解压到本地即可。注意保存路径不能有中文。

Struts必备组件

  • 动作
    创建一个包含完整的业务逻辑和控制用户,模型和视图之间的交互的动作类。
  • 拦截器
    如果需要,则创建拦截器,或者使用已存在的拦截器,这是控制器的部分。
  • 视图
    创建一个与用户交互的JSPs,它接受输入并显示最后的信息
  • 配置文件
    创建连接动作,视图和控制器的配置文件,配置文件有:struts.xml、web.xml、struts.properties。

创建动态Web项目

启动Eclipse for JavaEE,然后File->new->Dynamic Web Project,创建一个新的动态的Web项目。

Eclipse Struts2.5_第1张图片
动态Web项目

接着一路Next过去,只是注意默认的动态Web项目是不带Web.xml这个配置文件的,这里在图示箭头打勾。

Eclipse Struts2.5_第2张图片

项目创建成功,在Project Explorer中可以看到创建成功的项目,同时WebContent下的WEB-INF目录下就自带了一个Web.xml配置文件。

Eclipse Struts2.5_第3张图片

然后从下载的Struts2文件夹中的lib目录中选择相应包,拖拽到WEB-INF下的lib下。下面列出了Struts2的核心库:

  • struts2-core-2.5.2.jar
  • commons-io-2.4.jar
  • commons-lang3-3.4.jar
  • commons-logging-1.1.3.jar
  • commons-fileupload-1.3.2.jar–freemarker-2.3.23.jar
  • ognl-3.1.10.jar

除了上面的库,我还加入了javassist-3.20.0-GA.jar、log4j-api-2.5.jar库,这两个库也是常用的。还有一个servlet-api.jar库是Tomcat中的lib,这主要是为了防止后面配置文件时出现Warning时导入的。


Eclipse Struts2.5_第4张图片

创建Action

当用户点击一个url时,Action类响应用户动作。执行一个或多个Action类中的方法并且返回一个字符串结果。基于结果的值,将呈现一个指定的JSP页面。
  基于此,我们在Java Resources ->src目录下的com.learnweb.struts2包下,创建一个java文件HelloWorldAction.java文件。内容如下:

package com.learnweb.struts2;

public class HelloWorldAction{
       private String name;
       public String execute() throws Exception {
          return "success";
       } 
       public String getName() {
          return name;
       }
       public void setName(String name) {
          this.name = name;
       }
}

创建视图

对于视图,需要一个JSP提交信息,当一个预定义动作发生时,这个页面会被Struts2页面框架调用,这种映射关系定义在struts.xml文件中,所以现在应该在WebContent文件夹下新创建一个JSP文件,名字叫做HelloWorld.jsp,内容如下:

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page contentType="text/html; charset=UTF-8"%>

    
        Hello World
    
    
        Hello World, 
    

标签库指令告诉Servlet容器这个页面将使用struts2的标签,而且这些标签将在s之前。s:property标签显示动作类属性name>的值,它是由HelloWorldAction类的getName()方法返回的。

创建主页

还需要在WebContent文件夹中创建index.jsp。这个文件作为初始URL,用户可以点击它来告诉struts2框架调用HelloWorldAction类定义的方法,并且呈现HelloWorld.jsp视图。内容如下:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
   pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
   


Hello World


   

Hello World From Struts2


在struts.xml中将上面的视图文件中定义的hello动作映射到HelloWorldAction类和它的执行方法中。当用户点击提交按钮时,将引起 Struts 2 框架运行在 HelloWorldAction 类中定义的执行方法,根据方法的返回值一个适当的视图将被作为响应进行选择和呈现。

配置文件

struts.xml配置

这次让我们创建一个叫struts.xml的文件,在这个文件中我们可以配置一个将URL、HelloWorldAction类(模型)和HelloWorld.jsp(视图)连结起来的映射。该映射可以告诉我们Struts2框架哪个类将响应用户的动作(URL),这个类的哪个方法将被执行,根据方法返回的字符串结果将呈现什么视图。
  所以我们应当在WebContent/WEB-INF/classes文件夹下创建struts.xml文件。默认情况下,WEN-INF下不会有classes文件夹,所以得自己创建一个。struts.xml的内容如下:




    


        
      
            /HelloWorld.jsp
      
   

关于上述配置文件有几点需要注意。在这里我们设置常量 struts.devModetrue,是因为我们正工作在程序开发环境中,我们需要看到一些有用的日志信息。然后,我们定义了一个名为 helloworld 的包。当你想要把你的动作分成一组时,创建一个包是有用的。在我们的例子中,我们命名我们的动作为 “hello”,它对应着 URL /hello.action 和通过HelloWorldAction.class 进行备份。当 URL /hello.action 调用时,HelloWorldAction.class 的执行方法是运行的方法。如果执行方法的结果返回 “success”,然后我们把 HelloWorld.jsp 呈现给用户。

web.xml配置

web.xml是一个任何对struts2请求的入口点。Struts2应用程序的入口点是在web.xml中定义的过滤器。所以我们要在web.xml中定义一个org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter类。由于项目已经创建了一个默认的web.xml文件,现今将该文件改为:



    
   Struts 2
   
      index.jsp
   
   
        struts2
        org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
   
   
      struts2
      /*
   

这里我们指定了index.jsp为welcome文件。然后配置了Struts2的过滤器来运行所有的URL(即任何匹配模式/*的URL)。

执行应用程序

右键Project->Run As->Run on Server

Eclipse Struts2.5_第5张图片

点击Finish之后,就可以看到下列画面:

Eclipse Struts2.5_第6张图片
index.jsp
Eclipse Struts2.5_第7张图片
HelloWorld.jsp

还有一种方法就是在项目名称上右键,单击Export->WAR file导出一个WAR文件,然后在Tomcat的webapps目录下部署这个WAR。最后启动Tomcat服务器,并且尝试访问URL(http://localhost:8080/HelloWorld/) 也会得到上列画面。

最后

至此,struts2的配置就基本完成了。但目前自身对struts2框架了解还不够多,还需不断的学习。

你可能感兴趣的:(Eclipse Struts2.5)