Struts2学习笔记

1. 定义

   Struts是流行和成熟的基于MVC设计模式的Web应用程序框架

 

2. 使用Struts的目的

   为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。

 

3. MVC模式

   JSP+Servlet+JavaBean=Model2

 

 

   MVC是模型视图控制器(Model View Controller),一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

 

4. Struts发展历史

Struts2不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证,同时吸收了Struts1WebWork两者的优势。

 

 

 

 

5. Struts环境要求

   Servlet API 2.4以上

   JSP API 2.0以上

   Java 5以上

  注意:在Struts2中会用到Annotation,所以要将JDK升级到1.5以上。

 

6. 搭建Struts2环境步骤

  第一步:下载相关Jar

  第二步:创建Web项目

  第三步:创建并完善相关配置文件

  第四步:创建Action并测试启动

  下载地址:http://struts.apache.org/

            ② http://people.apache.org/builds/struts/

   

7. Struts2的工作原理及文件结构

 

8. Web.xml

任何MVC框架都需要与web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。

通常,所有的MVC框架都需要web应用加载一个核心控制器,对于Struts2框架而言,需要加载

Ø StrutsPrepareAndExecuteFilter,只要Web应用负责加载

Ø StrutsPrepareAndExecuteFilter

Ø StrutsPrepareAndExecuteFilter将会加载Struts2框架。

 

9. Struts.xml

Struts.xml中包含的内容:

① 全局属性

② 用户请求和响应Action之间的对应关系

③ Action可能用到的参数和返回结果

④ 各种拦截器的配置

 

10. Struts.properties

struts框架的全局属性文件,自动加载。

该文件包含很多key-value对。

该文件完全可以配置在struts.xml文件中,使用constant元素。

 

 

11. 访问Servlet API

   Protected void doGet(HttpServletRequset request,

HttpServletResponse response)throws ServletException,IOException{

 

}

    Protected void doPost(HttpServletRequset request,

HttpServletResponse response)throws ServletException,IOException{

 

}

Struts2提供了三种方式去访问Servlet API

① ActionContext

② 实现***Aware接口

③ ServletActionContext

 

12. Action搜索顺序

   Http://localhost:8080/struts2/path1/path2/path3/student.action

第一步:判断package是否存在,如:path1/path2/path3

存在

第二步:判断action是否存在,如果不存在则去默认的namespacepackage里面寻找action

第三步:如果没有,则报错。

不存在

第二步:检查上一级路径的package是否存在(直到默认namespac),重复第一步

 

13. 动态方法调用

  动态方法调用就是为了解决一个Action对应多个请求的处理以免Action太多

①   指定method属性

②    感叹号方式

③   通配符方式

Ø 三级通配符<action name="*_*_*" method="{2}"   

class="com.vanish.{3}.{1}Action">

       <result>/result.jsp</result>

      <result name="add">/{2}.jsp</result>

      <result name="update">/{2}.html</result>

</action>

Ø 二级通配符<action name="*_*" method="{2}"   

class="com.vanish.action.HelloWordAction">

       <result>/result.jsp</result>

      <result name="add">/{2}.jsp</result>

      <result name="update">/{2}.html</result>

</action>

Ø 一级通配符<action name="helloworld_*" method="{1}"   

class="com.vanish.action.HelloWordAction">

       <result>/result.jsp</result>

      <result name="add">/{1}.jsp</result>

      <result name="update">/{1}.html</result>

</action>

        

 

14. 指定多个配置文件

<include file=login.xml></include>

<include file=system.xml></include>

<constant name=struts.i18n.encoding value=UTF-8></constant>

 

15. 默认Action

<default-action-ref name="index"></default-action-ref>

 <action name="index">

    <result>/error.jsp</result>

</action>

 

16. 接收参数

①、使用Action的属性接收参数

②、使用DomainModel接收参数

③、使用ModelDriven接收参数

 

17. 处理结果类型

   <result name=success>/success.jsp</result>

      result元素中name就是result元素的逻辑视图名称

   <result>/success.jsp</result>

      如果省略了name属性,系统将采用默认的name属性值,默认的name值是success

   处理结果是通过在struts.xml使用<result/>标签配置结果。

   根据位置的不同,分为两种结果:

①. 局部结果        <result/>作为<action/>元素的子元素配置

②. 全局结果        <result/>作为<global-result/>元素的子元素配置

<result name=.....>

   <param name=location>resource</param>

</result>

子标签<param>具有两个属性:

①.location:该属性定义了该视图对应的实际视图资源。

②.parse:该参数指定是否可以在实际视图名字中使用OGNL表达式

   Struts2框架默认该属性为true,即支持OGNL表达式

 

      

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值