概述
使用步骤:
1.导入Struts2所需要的jar包
2.在web.xml中配置Struts2的前端控制器
<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>
3.编写Struts2的默认配置文件Struts2.xml
<packagename="default" namespace="/" extends="struts-default">
<!-- <a href="${pageContext.request.contextPath }/hello.action">访问struts2入门</a>-->
<!-- 将请求 分发给一个Action-->
<!-- action的name 就是hello.action去掉扩展名 -->
<action name="hello"class="cn.itcast.struts2.demo1.HelloAction">
<result name="executesuccess">/demo1/success.jsp</result>
</action>
</package>
Struts2的流程分析
用户请求-->Struts2的StrutsPrepareAndExcuteFilter核心控制器(Web.xml中)----->根据url进入Struts2.xml中根据name匹配进入到对应的拦截类中,执行相应的方法。------>根据方法的返回值匹配result进入对应的jsp页面中。
Struts2的文件加载顺序
default.properties 该文件保存在 struts2-core-2.3.7.jar中org.apache.struts2包里面 (常量的默认值)
struts-default.xml 该文件保存在 struts2-core-2.3.7.jar (Bean、拦截器、结果类型 )
struts-plugin.xml 该文件保存在struts-Xxx-2.3.7.jar (在插件包中存在,配置插件信息 )
struts.xml 该文件是web应用默认的struts配置文件 (实际开发中,通常写struts.xml ) ******************************
struts.properties 该文件是Struts的默认配置文件 (配置常量 )
web.xml 该文件是Web应用的配置文件 (配置常量 )
(1)package标签:
<package name="default"namespace="/" extends="struts-default">
name是唯一的 namespace和action的name决定访问的路径 namespace如果不写的话默认是"".
(2)action标签:
<action name="hello"class="cn.itcast.struts2.demo1.HelloAction" method=“方法名”>
name即匹配的url地址 class为进入的类 如果不写class则默认进入ActionSupport中 method即为执行的方法 ,如果不写则默认进入execute方法。
(3)result标签
<resul t name="executesuccess">/demo1/success.jsp</result>name即为根据方法返回的字符串 根据字符串匹配进入对应的jsp页面 如果不写name 默认是success
跳转的路径是由namespace和action中的name共同决定的 /namespace/name 这两个中间不管是什么都能跳转
定义默认的action 如果没找到相应的action标签中的name 则去找定义的这个默认action
即:
<default-action-ref name="default"></default-action-ref>
<action name="default" >
<result name="success">/WEB-INF/hello1.jsp</result>
</action>
Struts2的常用常量:
<constantname="struts.i18n.encoding" value="UTF-8"/>
------- 相当于request.setCharacterEncoding("UTF-8"); 解决post请求乱码
<constant name="struts.action.extension"value="action,,"/>
------- 访问struts2框架Action访问路径 扩展名 (要求)
这个就是后缀名 可以使 .action 或者空 或者.do 或者其他的 自己定义
<constantname="struts.serve.static.browserCache" value="false"/>
------ false不缓存,true浏览器会缓存静态内容,产品环境设置true、开发环境设false
------(修改完配置文件不用重启服务器)提供详细报错页面,修改struts.xml后不需要重启服务器 (要求)
Struts2的文件分离 类似于applicationContext.xml中的文件引入:
<include file="struts-part1.xml"/>
书写Acion类的三种方式
1.pojo类 自己写一个类实现业务
2. 实现Action接口
3.编写Action 继承ActionSupport (推荐)
可以在Action中使用 表单校验、错误信息设置、读取国际化信息三个功能
Action中方法的通配符
<action name="customer_*" class="cn.itcast.struts2.demo4.CustomerAction" method="{1}"></action>
--- {1}就是第一个* 匹配内容
动态方法调用
1.首先保证常量中动态方法为true
2.Action标签中 不写method 而在url中使用 "!方法名"
最后
以上就是靓丽铃铛为你收集整理的Struts2的学习和使用(1)的全部内容,希望文章能够帮你解决Struts2的学习和使用(1)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复