struts2 学习笔记三----动态方法调用
来源:互联网 发布:云计算对oa系统的影响 编辑:程序博客网 时间:2024/04/30 09:45
动态方法调用
语法格式如下:
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
语法格式如下:
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 学习笔记三----动态方法调用
- Struts2 学习笔记05 动态方法调用
- Struts2学习笔记---动态方法的调用
- Struts2学习笔记(12)-----Struts2之动态方法调用
- 黑马程序员---struts2学习笔记之三通配符与动态方法调用
- Struts2学习笔记之动态方法调用和参数获取
- Struts2学习笔记(二) 使用通配符动态调用方法
- 关于Struts2 namespace 的学习笔记(DMI动态方法调用)
- Struts2学习笔记之动态方法调用和参数获取
- 【Struts2学习笔记(6)】Action动态方法调用
- Struts2学习笔记 - Action篇<动态方法调用
- Struts2三种动态方法调用
- Struts2学习 动态方法调用(DMI)
- 学习之----Struts2动态方法调用
- struts2动态方法调用
- Struts2 动态方法调用
- struts2动态方法调用
- struts2 动态方法调用
- linux 启动流程与文件系统管理
- 一些对GIS的理解
- SQLServer2005 百炼成钢
- 凹凸贴图(bump mapping)
- C++ 书籍推荐录
- struts2 学习笔记三----动态方法调用
- android关于获取隐藏类的心得
- 普适计算应用:香蕉也能当键盘——Makey Makey
- XMU 1315.字符串编码 字符串的编码最短长度
- linux 的 BASH
- 七夕,你拿什么拯救你的爱人?
- linux 账号管理与例行工作
- struts2 学习笔记四---ongl表达式
- linux 文件属性与权限