首页 > 代码库 > Struts入门(三)深入Struts用法讲解
Struts入门(三)深入Struts用法讲解
- 访问Servlet API
- Action搜索顺序
- 动态方法调用
- 指定多个配置文件
- 默认Action
- Struts 后缀
- 接收参数
- 处理结果类型
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>
这里我们需要创建三个jsp文件 默认路径的result.jsp 还有add方法的add.jsp update方法的update.jsp
页面里面我们都用一句话简单区分 这样 启动Debug as Server 然后在浏览器中访问就可以对应到相应的路径了
这里struts.xml文件result标签值都改成{1}.jsp 一样的道理 这里可以随意加参数进行配置
Struts入门(三)深入Struts用法讲解