初学Struts,因为Struts版本较多,在网上找的Struts版本差不多都是Struts2.3版本的,现在就写一写最新的Struts2.5.16版本在eclipse中的配置。
目录:
1、添加项目所需要的jar包
2、struts.xml
3、web.xml
4、新手在运行动态action程序时会遇到的问题
首先,去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都配置正确的情况下,会报出以下的错误:
首先要生成一个struts.xml文件。
方法是:选中项目。右键——新建——其他,在搜索框内输入xml,然后选择:
(注意一定要将该xml文件命名为:struts.xml,不能出错。)
但是在新生成的xml文档中只有版本信息,因此还需要将以下内容复制到xml文档中
这样eclipse才会出现提示。
(以上需要复制的内容可以从Struts目录下打开apps文件夹,其中有两个war包,随便其中一个war包解压出来,依次打开WEB-INF——src找到里面的Struts.xml就可以找到上面的这段话)
在这部分,Struts2.3与Struts2.5有一个区别:
Struts2.3中的filter配置如下:
而Struts2.5中的filter配置如下:
可以观察到在Struts2.5中filter-class标签中少了一个ng,这是因为在Struts2.5.16中,Struts2-core-2.5.16.jar中是没有子目录ng的,因此想找到上面的StrutsPrepareAndExecuteFilter类,只能通过以上的路径。
出现这个问题,需要检查:在Struts.xml文件夹下的文件名、类名有没有输入错误,其次是在Struts.xml文件中添加
出现这个问题,需要在package节点下添加一个允许方法列表
add, update
学习任何一门技术都是一个循序渐进并且需要不断练习巩固加强的,所以遇到问题第一件事就是先分析可能的问题出在哪里,然后借助网上的经验进行修改,不要畏难,给自己自信就可以做好(完)。
以后再遇到问题再行补充。
补充1:在创建一个Struts程序时,如用到jsp页面,如表单提交页面,在表单提交页面需要用到Struts的标签,且定义前缀为s,则需要在jsp页面的顶端加上一行引用标签库的代码如下:
<%@ taglib prefix="s" uri="/struts-tags" %>
而且由于Struts的标签库要求所有的请求通过其servlet过滤器时才可以使用,这是因为该过滤器初始化该标签所需的Struts调度器。因此需要在web.xml文件中配置相应的filter,代码如下:
struts2
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
struts2
/*
补充2:在Struts2中默认页面提交的代码的编码格式是utf-8,因此如果编写的jsp页面的编码格式非utf-8,则会出现乱码问题