struts2笔记(一)
01 Struts2-Action
一、Struts作用:
将请求与结果分开
二、搭建Struts2的运行环境:
1、建立Web项目;
2、建立Struts2的配置文件(struts.xml);
将Struts2的空项目中的配置文件(struts.xml)复制到项目的src目录下。
配置如下:
<!--
struts.devMode : 是否设置为开发模式 true:是开发模式,否则不是
注:在开发模式下,修改Struts的配置文件后不需要重新启动Tomcat服务器即生效。
否则修改Struts配置文件后需要重新启动Tomcat服务器才生效。
-->
<constant name="struts.devMode" value="true" />
<!--
namespace :对应与项目名称后面的"/"(例如Struts2_0100_Introduction后面的"/")
(http://localhost:8080/Struts2_0100_Introduction/)
-->
<package name="default" namespace="/" extends="struts-default">
<action name="hello">
<result>
/hello.jsp
</result>
</action>
</package>
3、复制Struts2相应的jar包及第三方包。
将空项目中lib目录中的除junit和spring-test之外的所有文件复制到项目的WebRoot/WEB-INF/lib目录下
4、修改对应的web.xml,建立struts2的filter(参考struts自带的项目),添加如下配置:
<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>
三、Namespace
Namespace决定了action的访问路径,默认为“”,可以接收所有路径的action,如果没有找到相应的namespace时,则使用namespace为空的action
Namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action、/xxx/index.action、或者/xxx/yyy/index.action.
Namespace最好也用模块来进行命名。
namespace :对应与项目名称后面的"/"(例如Struts2_0100_Introduction后面的"/")
(http://localhost:8080/Struts2_0100_Introduction/)
四、<package>标签
<package>是用来解决重名的问题,例如当系统的前台和后台都有一个action名叫hello,这时就需要用package来区分。前台<package name="front">后台<package name="back">
struts2中的package与java的package是相同的作用的。
五、Action
具体视图的返回可以由用户自己定义的Action来决定
具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容,有三种手段:
<constant name="struts.devMode" value="true" />
<package name="front" extends="struts-default" namespace="/">
<action name="index" />
…………
注:<base>标签:当前页面中所有连接都会在前面加上base地址。