`

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学习笔记1-HelloWorld项目

    在实际开发中,Struts2提供了许多高级特性,如拦截器、结果类型、动态方法调用、国际化支持等。这些特性使得Struts2不仅可以处理简单的HTTP请求,还能应对复杂的业务场景和大型Web应用的需求。 通过深入学习和实践...

    struts2 学习重点笔记

    ### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...

    Struts2学习笔记

    根据给定的文件信息,以下是对Struts2学习笔记中涉及的关键知识点的详细解析: ### Struts2框架概览 #### MVC模式的理解与演进 Struts2是基于MVC(Model-View-Controller)模式设计的一种Java Web开发框架。在MVC...

    struts2学习笔记总结

    本笔记将全面总结Struts2的核心概念、主要功能以及实际开发中的应用。 一、Struts2概述 Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是...

    struts2学习笔记(完美总结)——转自OPEN经验库

    Action类通常包含了业务逻辑的处理方法,这些方法会被Struts2调用以响应用户的请求。Action类可以通过返回不同的字符串来决定后续的视图显示,如返回"success"、"error"等,这些字符串与配置文件中的Result相关联。 ...

    struts2学习笔记

    此外,Struts2还支持动态方法调用、国际化、主题和模板、AJAX集成等特性,为开发者提供了全面的Web应用开发解决方案。在实际开发中,熟练掌握Struts2的各种机制和最佳实践,能提高开发效率和代码质量。

    struts2综合笔记

    - **发展历程**: Struts2 是在 WebWork 框架的基础上发展起来的,因此学习 Struts2 实际上也是学习 WebWork。 #### 二、Struts2 的核心组件分析 **控制器**: - **Servlet VS Filter**: - **Servlet**: - 在内存...

    struts 2 学习笔记

    绝对路径可以通过`basepath`变量访问,动态方法调用可以使用`!method`的形式,如`student*`用于自动匹配`studentadd`等Action。 5. **Action参数传递**: - 自动参数:URL中的查询字符串可以直接映射到Action的...

    struts2 学习笔记 实战

    Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中扮演着重要的角色。本文将深入探讨Struts2的核心概念,包括Namespace、标签、Action以及它们在实际开发中的应用。 一、Namespace ...

    Struts2学习笔记2012

    ### Struts2学习笔记2012 #### 一、建立一个Struts2工程 **步骤详解:** 1. **创建Web项目:** - 在MyEclipse中选择“File” &gt; “New” &gt; “Dynamic Web Project”,创建一个新的Web项目。 2. **解压并配置...

    struts2框架学习笔记整理

    ### Struts2框架学习笔记整理 #### 一、Struts2框架概述 ##### 1.1 Struts2框架定义 Struts2是一个基于MVC(Model-View-Controller)架构模式的开源Java web应用框架,它能够帮助开发者构建可扩展且易于维护的...

    Struts1及14. Struts2学习笔记

    另外,Struts2支持动态方法调用,使得Action方法的映射更加灵活。 **两者对比** 1. **配置复杂度**:Struts1的配置相对繁琐,而Struts2简化了配置,提供了更多自动化功能。 2. **表达式语言**:Struts1使用JSP EL,...

    Struts2 学习笔记

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

    struts2详细学习笔记

    总的来说,学习Struts2需要理解这些基本配置元素的含义和用法,以及如何通过常量配置来调整框架的行为。此外,还需了解Action、Interceptor(拦截器)的概念,以及结果类型、异常处理、国际化支持等内容。熟练掌握...

Global site tag (gtag.js) - Google Analytics