eclipse中搭建Struts2.5.16

初学Struts,因为Struts版本较多,在网上找的Struts版本差不多都是Struts2.3版本的,现在就写一写最新的Struts2.5.16版本在eclipse中的配置。

目录:

1、添加项目所需要的jar包

2、struts.xml

3、web.xml

4、新手在运行动态action程序时会遇到的问题

一、添加项目所需要的jar包

首先,去Struts官网下载Struts包。官网地址:http://struts.apache.org——download——struts-2.5.16-all.zip

其次,解压下载包,在解压后的struts-2.5.16文件夹的lib文件夹下将以下jar包复制到eclipse的web项目的WEB-INF的lib文件夹下,接着再选中该web项目,右键,配置构建路径,将这些jar导入该项目。

需要导入的jar包有:


附注:与Struts2.3比起来少了一个xwork-core-2.3.34.jar,多了一个log4j-api-2.7.jar。这是因为xwork-core-2.3.34.jar已经整合到Struts2-core中了,如果没有导入log4j-api-2.7jar的话,在web.xml和struts.xml都配置正确的情况下,会报出以下的错误:

扫描二维码关注公众号,回复: 1830338 查看本文章


二、struts.xml的配置

首先要生成一个struts.xml文件。

方法是:选中项目。右键——新建——其他,在搜索框内输入xml,然后选择:


(注意一定要将该xml文件命名为:struts.xml,不能出错。)

但是在新生成的xml文档中只有版本信息,因此还需要将以下内容复制到xml文档中

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

这样eclipse才会出现提示。

(以上需要复制的内容可以从Struts目录下打开apps文件夹,其中有两个war包,随便其中一个war包解压出来,依次打开WEB-INF——src找到里面的Struts.xml就可以找到上面的这段话)

三、web.xml

在这部分,Struts2.3与Struts2.5有一个区别:

Struts2.3中的filter配置如下:

  1. <filter>
  2. <filter-name>struts2 </filter-name>
  3. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class>
  4. </filter>

而Struts2.5中的filter配置如下:

  1. <filter>
  2. <filter-name>struts2 </filter-name>
  3. <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter </filter-class>
  4. </filter>

可以观察到在Struts2.5中filter-class标签中少了一个ng,这是因为在Struts2.5.16中,Struts2-core-2.5.16.jar中是没有子目录ng的,因此想找到上面的StrutsPrepareAndExecuteFilter类,只能通过以上的路径。

四、新手在运行动态action程序时会遇到的一些问题


出现这个问题,需要检查:在Struts.xml文件夹下的文件名、类名有没有输入错误,其次是在Struts.xml文件中添加

<constant name="struts.enable.DynamicMethodInvocation" value="true" />

出现这个问题,需要在package节点下添加一个允许方法列表

<global-allowed-methods>add, update</global-allowed-methods>

最后

学习任何一门技术都是一个循序渐进并且需要不断练习巩固加强的,所以遇到问题第一件事就是先分析可能的问题出在哪里,然后借助网上的经验进行修改,不要畏难,给自己自信就可以做好(完)。

以后再遇到问题再行补充。


补充1:在创建一个Struts程序时,如用到jsp页面,如表单提交页面,在表单提交页面需要用到Struts的标签,且定义前缀为s,则需要在jsp页面的顶端加上一行引用标签库的代码如下:

<%@ taglib prefix="s" uri="/struts-tags" %>

而且由于Struts的标签库要求所有的请求通过其servlet过滤器时才可以使用,这是因为该过滤器初始化该标签所需的Struts调度器。因此需要在web.xml文件中配置相应的filter,代码如下:

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
<filter-mapping>

补充2:在Struts2中默认页面提交的代码的编码格式是utf-8,因此如果编写的jsp页面的编码格式非utf-8,则会出现乱码问题


猜你喜欢

转载自blog.csdn.net/qll19970326/article/details/80865250