码迷,mamicode.com
首页 > 其他好文 > 详细

Struts入门(三)深入Struts用法讲解

时间:2017-01-17 00:46:58      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:方式   入门   bsp   ima   pen   show   lin   XML   项目   

  1. 访问Servlet API
  2. Action搜索顺序
  3. 动态方法调用
  4. 指定多个配置文件
  5. 默认Action
  6. Struts 后缀
  7. 接收参数
  8. 处理结果类型

1.访问Servlet API

   首先我们了解什么是Servlet API 

  httpRequest、httpResponse、servletContext
  3个api对应jsp面向对象:request、response、application
  servlet中可以直接调用servlet api


  struts2 Action中execute没有任何参数,也就是不存在servlet api 

   Struts2框架底层是基本Servlet的,所以我们肯定要去访问Servlet API,而且开发Web应用不去访问Servlet API也是不可能的,

所以我们Struts2框架提供了我们去访问Servlet API的方法;            

struts2 提供了3种方式访问servlet api:       

   ①:使用ServletActionContext访问Servlet API;    ActionContext类   

   ②:使用ActionContext访问ServletAPI;              ServletActionCotext类

   ③:使用一些接口 如 ServletRequestAwa...;          实现***Aware接口

  

2.Action搜索顺序

 

我们来看一个路径:

我们这里新建一个student.action 没有命名空间那么我们访问的路径就是

http://localhost:8080/ProjectName(项目的名字)/student.action

那么我们改成下面的路径

 http://localhost:8080/ProjectName(项目的名字)/path1/path2/path3/student.action

 在浏览器中访问也能访问到正确的页面

 

因此我们可以看出访问的顺序是从文件的上级 也就是最后一级包开始找

 http://localhost:8080/ProjectName(项目的名字)/path1/path2/path3/student.action

 http://localhost:8080/ProjectName(项目的名字)/path1/path2/student.action

 http://localhost:8080/ProjectName(项目的名字)/path1/student.action

 http://localhost:8080/ProjectName(项目的名字)/student.action

 从path3 一直到path1都找不到 最后在根目录下找到  如果找不到就会报错了  

  这就是action的搜索顺序!

3.动态方法调用

   在.net MVC中 我们在Controller中创建一个一个方法  只要在页面中指定相应的mvc路径  我们视图的一个url就能请求得到

在struts中 我们则需要手工进行配置  指定页面和后台方法的匹配

  这里的动态方法调用就是为了解决一个Action对应多个请求得处理。以免Action太多(像指定method属性的配置方式  )

  动态调用有三种方式  这里指定method属性和感叹号方式(不推荐使用)不再说明   我们来说下常用的通配符方式:

首先在struts.xml配置我们的参数

技术分享
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd" >
<struts>
 <package name="default" namespace="/" extends="struts-default">
    <action name="HelloWorld2" class="com.HelloWorldAction">
        <result>/result.jsp</result>
    </action>
    <!-- 
        name 代表我们的action名也就是url里面的名字   
        class是指定我们的后台类文件
        method {1} 与name中的*对应
     -->
    <action name="helloworld_*"  method="{1}" class="com.HelloWorldAction">
        <result >/result.jsp</result>
        <result name="add" >/add.jsp</result>
        <result  name="update" >/update.jsp</result>
    </action>
 </package>
</struts>
View Code

这里我们需要创建三个jsp文件  默认路径的result.jsp   还有add方法的add.jsp   update方法的update.jsp

技术分享

 

 技术分享

页面里面我们都用一句话简单区分  这样 启动Debug as Server 然后在浏览器中访问就可以对应到相应的路径了

技术分享

 

技术分享

技术分享

这里struts.xml文件result标签值都改成{1}.jsp  一样的道理    这里可以随意加参数进行配置

 

Struts入门(三)深入Struts用法讲解

标签:方式   入门   bsp   ima   pen   show   lin   XML   项目   

原文地址:http://www.cnblogs.com/DemoLee/p/6291341.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!