一、Action配置的各项默认值:
1。如果没有为action指定class,默认就是ActionSupport类;
2。如果没有为action指定method属性,则默认执行execute方法;
3。如果没有指定result的name属性,默认值为success。
ActionSupport类中的execute方法的源码如下所示:
public String execute() throws Exception
{
return "success";
}
(1) .我们在jsp页面之间写链接总会是.../xxx.jsp,而如果我们想屏蔽掉具体的jsp,只需要所jsp页面配置成一个ForwardAction即可实现。示例如下:在根目录下有一个xxx.jsp,我们strtus.xml中作如下配置:
<package name="def" extends="struts-default">
<action name="forward">
<result >/xxx.jsp</result>
</action>
</package>
随后再在根目录下的aa.jsp中增加如下代码:
<a href="<%=request.getContextPath()%>/forward.action">forward</a>
最后再测试访问aa.jsp,在aa.jsp中页面中直接点链接便可以跳到xxx.jsp,观察地址栏发现此时跳到xxx.jsp页面是进行的服务器内部转发,如果我们在上面的配置中的result增加type属性变成<result type="redirect">/xxx.jsp</result>,实现的就是页面重定向,这样地址栏中就会出现xxx.jsp。 像上面的这种forward形式的action实质是执行的ActionSupport 这个Action。
(2).如果我们为action指定的class,但没有为action指定method属性,则默认执行execute方法,配置如下所示:
<package name="myDemo" namespace="/demo" extends="struts-default">
<action name="test" class="demo.action.TestAction">
<result>/WEB-INF/jsp/test.jsp</result>
</action>
</package>
此时如果demo.action.TestAction类中没有execute() 方法,则访问/demo/test.action时会报错。此时TestAction类必须有execute()方法。
因为如果没有指定result的name属性,默认值为success。所以上面的配置文件中的<result>的name属性即为success,所以TestAction类中的execute() 方法必须返回"success"否则会抛出如下异常:
警告:
Could not find action or result
No result defined for action demo.action.TestAction and result test
二、Action名称的搜索顺序
1.获得请求路径的URI,例如url是:http://server/struts2/path1/path2/path3/test.action
2.首先寻找namespace为/path1/path2/path3的package,如果存在这个package,则在这个package中寻找名字为test的action,如果不存在这个package则转步骤3;
3.寻找namespace为/path1/path2的package,如果存在这个package,则在这个package中寻找名字为test的action,如果不存在这个package,则转步骤4;
4.寻找namespace为/path1的package,如果存在这个package,则在这个package中寻找名字为test的action,如果仍然不存在这个package,就去默认的namaspace的package下面去找名字为test的action,如果还是找不到,页面提示找不到action。
分享到:
相关推荐
Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理...
传智播客struts2.1视频教程_源代码_Action配置的各项默认值
Action名称的搜索顺序Action配置的默认值Action中Result的结果类型
Action名称的搜索顺序 Action配置的各项默认值 result配置的各种视图转发类型 为Action属性注入值 指定Struts 2处理的请求后缀 Struts 2的处理流程与Action的管理方式 为应用指定多个配置文件 动态方法调用...
传智播客struts2.1视频教程_源代码_Action名称的搜索顺序
Struts2上传和下载Action配置 上传:获取名称和类型,复制到固定文件里 下载:该方法的返回值为一个InputStream流。
Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理...
Struts2中struts_xml的Action配置详解
Struts 2使用注解配置Action,不配置struts.xml,通过注解直接配置action
使用注解配置Action示例。里面已经包涵java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils错误异常的解决方案。
本资源主要在与ckeditor,springMVC只有action的注解配置,主要在ckeditor的实现图片的粘贴、上传。
在web.xml中配置action或.do,附上详细的文档
·Struts2配置文件介绍 struts.xml action package ·Struts2配置文件介绍 struts.xml action package
Action的常用配置,用于学习struts2的备忘录。十分简单明了
struts2注解配置Action及拦截器几种不同方式写法对应的路径指向.docx
注解配置ACTION
更改过的UnityXR的Action配置
struts2 action几乎完全吸收了xwork 的精华,近日学习struts 2,总结一下action的配制方法。struts2相关的配置文件有web.xml(必须的),struts.xml(必须的),struts.properties,struts-default.xml,velocity.properties...
其中包括: Struts In Action中文版.pdf Struts 配置骨架.xml Struts 配置元素.doc web_xml中ActionServlet中的属性.doc
NULL 博文链接:https://wang4717.iteye.com/blog/808104