`

struts2 学习笔记三----动态方法调用

 
阅读更多
动态方法调用
语法格式如下:
http://ip:port/AppPath/<PackageNamespace>/<ActionName>!<MethodName>.<extension>
举例:
http://localhost:8080/struts2demo/user/admin/view1Action!sayHello1.action
可以通过常量struts.enable.DynamicMethodInvocation关闭动态方法调用。


*通配符


方式1:
<action name="view6*" class="cn.yue.struts2demo.HelloWorldAction" method="{1}">
<result>/WEB-INF/page/{1}.jsp</result>
</action>
方式2:
<action name="view7_*" class="cn.yue.struts2demo.HelloWorldAction" method="{1}">
<result>/WEB-INF/page/{1}.jsp</result>
</action>


找静态资源 FilterDispatcher
org.apache.struts2.static
template


StrutsPrepareAndExecuteFilter的功能
其他的Filter通常要位于StrutsPrepareAndExecuteFilter之前,如果其他的Filter要访问Struts的特性,这时候不要使用StrutsPrepareAndExecuteFilter ,而是使用


StrutsPrepareFilter与StrutsExecuteFilter,并让其他的Filter应位于两者之间。


拦截器
在<action>中使用<interceptor-ref>元素引用拦截器或拦截器栈
在struts-default.xml文件中查看和了解默认包中的默认拦截器栈的配置。
在<package>中使用<interceptors>元素配置<interceptor>或<interceptor-stack>
在<package>中使用<default-interceptor-ref >元素为该包中的所有action配置默认拦截器(defaultStack) ,每 个包只能指定一个默认拦截器。一旦为某个action显式指定了某


个拦截器,则所属包中定义的默认 拦截器将不起作用。

自定义一个进行性能统计或权限判断的拦截器,性能统计拦截器要实现 com.opensymphony.xwork2.interceptor.Interceptor接口。



权限判断的拦截器
权限判断拦截器继承MethodFilterInterceptor类,这样只对某些方法起作用,而对其他方法不起作用。
public class SecurityCheckInterceptor extends MethodFilterInterceptor {
private static final long serialVersionUID = -3398979969067173401L;
@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
HttpSession session=ServletActionContext.getRequest().getSession();
User user=(User) session.getAttribute("user");
if(user==null)
{
return "error";
}
return invocation.invoke();
}
}




对指定方法进行拦截
<interceptor-ref name="defaultStack">
<!-- 对指定方法进行拦截 -->
<param name="excludeMethods">sayHello</param>
</interceptor-ref>


借助AnnotationWorkflowInterceptor用注解方式实现拦截器的功能
<interceptor-ref name="annotationWorkflow"></interceptor-ref>
顺序是:@Before --@BeforeResult--result--@After
分享到:
评论

相关推荐

    Struts2 学习笔记

    七、 Action的动态调用方法 8 八、 Action通配符(wildcard)的配置 9 九、 Action的属性接收参数 10 1、 在Action添加成员属性接受参数 10 2、 域模型(Domain Model) 10 3、 ModelDriven接收参数 11 十、 Action属性...

    Struts2学习笔记(3)-DMI动态调用方式

    本文主要介绍Struts2的DMI动态调用的两种方式,简单实用,希望能给大家做一个参考。

    struts2的学习笔记+测试源代码

    动态方法调用的两种方式 博文链接:https://wuzhaohuixy-qq-com.iteye.com/blog/710102

    Java学习笔记-个人整理的

    {2.4}父类对象的方法调用}{51}{section.2.4} {2.5}封装}{52}{section.2.5} {2.6}多态}{53}{section.2.6} {2.7}Sample code}{54}{section.2.7} {2.8}框架中移动的小球}{59}{section.2.8} {2.9}抽象与接口}{59}{...

    收集的常见的专业问题解决办法.rar

    2009-02-24 08:42 165165 37065 常见的专业问题解决办法\Java核心技术学习笔记--异常和调试_Believe ┭┮ YourSelf.mht 2009-03-20 16:36 142683 39110 常见的专业问题解决办法\JR - 专题论坛问题 - eclipse??如何...

    BEAWebLogicWorkshop使用笔记之三--Web应用篇

    火龙果软件工程技术中心 续EJB开发篇,通过本文的学习,读者将能领会在WebLogicWorkshop上的Pageflow应用开发。本文,我们需要建立一个简单的Web应用,提供相应的友好界面来调用刚开发完毕EJB组件,在这个web应用中...

    整理后java开发全套达内学习笔记(含练习)

    int 32bit, -2^31~2^31-1 (2147483648,20亿,10位有效数字) long 64bit, -2^63~2^63-1 (900亿亿,20位有效数字) float 32bit, 9位有效数字,含小数(四舍五入)(小数点算一位,正负号不算) double 64bit, 18位...

    SSI-iBatis2.x

    本文是个人在学习过程中的学习笔记,详细讲解了如何使用iBatis2.x以及如何将其与Struts2.x,Spring3.x进行整合开发,其中包括iBatis基础使用,存储过程调用和数据库函数的调用。

    人脸识别研究综述

    二、javaEE框架学习笔记 2、&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;的涵义: @taglib表明引用标签。类似java中的import语句prefix="s" 引用的名称在页面可以使用,就像java中生成的一个对象名,以后调用的时候...

    jive.chm

    系统设计 1 jive设计思路 2 jive的工作内幕 3 Jive源代码研究 4 Jive中的设计模式 5 jive学习笔记 &lt;br&gt; 设计模式 1 大道至简-Java之23种模式一点就通 2 设计模式...

    java文集

    ext学习笔记一 小试iBatis RIA(Rich Internet Application)的现状和未来 Java应用中域名解析不过期的解决方法 Java编程那些事儿45—数组使用示例1 一步步熟悉OFBiz 用Java做客户端调用.NET写...

Global site tag (gtag.js) - Google Analytics