Struts2中Struts.xml的作用是什么?
主要作用就是为Struts 2的核心配置文件。
一、struts.xml中主要配置Struts项目的一些全局的属性,用户请求和响应Action之间的对应关系,以及配置Action中可能用到的参数,以及处理结果的返回页面。
二、Apache Struts 2最初被称为WebWork 2,它是一个简洁的、可扩展的框架,可用于创建企业级Java web应用程序。设计这个框架是为了从构建、部署、到应用程序维护方面来简化整个开发周期。
三、web.xml配置文件是一种J2EE配置文件,决定servlet容器的HTTP元素需求如何进行处理。它严格来说不是一个Struts2 配置文件,但它是Struts2 运作所需要进行配置的文件。
四、在web.xml里定义一个FilterDispatcher类的接入点,而这个web.xml文件需要在WebContent/WEB-INF文件夹下创建。如果你开始时没有模板或工具(比如Eclipse或Maven2)的辅助来生成,那这就是第一个你需要配置的文件。
struts2配置文件DTD问题
在MyEclipse中
struts.xml配制文件中alt+/不支持提示,这时需要手工添加dtd的支持
在Myeclipse中菜单栏window-preference-Myeclipse-file
and
eiditor-xml-xml
catalog-add
1)Location:
在struts2文件夹下的lib目录,找到struts2-core文件并解压,打开解压的目录下即可找到struts2.3.dtd
。这里location就选中该文件。
2)Key
Type:选中URI
3)Key
:
在struts.xml中有
!DOCTYPE
struts
PUBLIC
"-//Apache
Software
Foundation//DTD
Struts
Configuration2.3//EN"
""
复制其中的:
粘贴到key。
请帮我详细解释Struts2的配置文件
constant name="struts.configuration.xml.reload" value="true"/constant//是说,当你的配置文件改变是,struts自动读取,不需要你重启服务。
constant name="struts.objectFactory" value="spring"/constant//与spring框架结合使用,你的action对象由spring帮助生成了。
package name="" extends="struts-default" namespace="/"//这个struts的包名,继承struts-default,就是这个写,你也不需要多想,name写什么都行
//UsersAction这个类实现了action接口,给这个action起来个名字叫usersAction_*,*的意思是说,usersAction_后面可以跟要执行的方法名,这与method="{1}"相呼应,*的名字,就是{1}的方法名
action name="usersAction_*" class="UsersAction" method="{1}"
result name="success"/result.jsp/result//return “SUCCESS”时的转向路径,注意我的大小写
result name="input"/login.jsp/result//return “INPUT”时的转向路径,注意我的大小写
result name="list"/list.jsp/result//return “list”时的转向路径,注意我的大小写
/action
/package
在struts2配置文件中,这些有什么作用?
在struts2配置文件中作用:
constant name="struts.custom.i18n.resources" value="globalMessages" / 设置全局资源文件名称为 globalMessages(src下会有一个globalMessages.properties)
constant name="struts.action.extension" value="do, ," / 设置Action的访问扩展名为 .do
constant name="struts.i18n.encoding" value="UTF-8" / 设置参数编码为UTF-8
constant name="struts.multipart.maxSize" value="1075555555" / 设置上传文件允许的最大字节数
constant name="struts.multipart.saveDir" value="C:/" / 设置上传文件所保存的临时文件夹
简述Struts2的配置文件包括哪些元素
1、package元素
package用来管理action:使用了面向对象的思想
属性:
name:用来定义包名,注意:同一个配置文件中包名是唯一的。
extends:指定所继承的包,一般情况下需要继承struts-default包
truts-default.xml中定义着struts-default这个包。
truts-default.xml是在我们的struts.xml加载之前加载。
abstract:指定包是抽象的,只能被继承,含有action的包不能是抽象的,默认值是false。
namespace:名称空间
名称空间 + 动作名称 = 访问路径
package name="p1" extends="struts-default" namespace="/a/b"/package
1
struts2查找动作的方法:
1:先按照用户输入的路径查找路径: /a/b/c/d/action1.action
如果没有找到再向上一层路径找:/a/b/c 找到了(不会再继续向上找)该路径则执行第二步
再向上一层路径找:/a/b 找到了(不会再继续向上找)该路径则执行第二步,找不到继续向上一级找
再向上一层路径找:/a 没找到 找到了(不会再继续向上找)该路径则执行第二步
再找/ 也没有的话去默认命名空间下找。
都没找到直接报错
2:找action: 先在当前的命名空间下找 ,如果没有找到则取默认的命名空间(没有写namespace属性的)下找 ,如果还找不到报错
一般只要我们有默认命名空间的pakege标签时,第一步是不会报错的。
struts2的配置文件必须放在src下吗?
默认情况下是必须src下。编译后会在classes文件夹。
如果想修改的话,打开项目的WEB-INF文件夹中的web.xml
修改struts2配置文件为下面这样。
filter
filter-namestruts/filter-name
filter-class
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
/filter-class
init-param
param-nameconfig/param-name
param-value
struts-default.xml,struts-plugin.xml,struts-config/struts.xml
/param-value
/init-param
/filter
filter-mapping
filter-namestruts/filter-name
url-pattern/*/url-pattern
/filter-mapping
注意
struts-config/struts.xml
就是修改后的struts配置文件路径。
你说的包是哪个包?lib目录?还是普通的package包?
配置文件建议单独设立文件夹,不建议放到lib或package里边。