ognl表达式
调用对象的方法
"'hello'.length()"
调用对象的静态方法或者静态成员
"@java.long.Math@random()"
获取context中的数据
context.put("name","张三")
"#name"
获取root中的数据
User user = new User();
user.setName("网袜");
context.setRoot(user);
"name"
创建对象
"{'tom','jerry'}" //创建list对象
"#{'name';'tom','age':18}" //创建map对象
自定义拦截器
类的书写
public class IteratorDemo extends MethodFilterInterceptor{
@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
invocation.invoke(); //放行
return "success"; //不放行跳转
}
}
拦截器的配置
在struts2中配置
struts.xml
<interceptors>
<interceptor name="demo" class="crm.web.action.IteratorDemo" />
<interceptor-stack name="demoints">
<interceptor-ref name="demo" >
<param name="excludeMethods">add</param> <!-- 指定要拦截的方法 exclude不包含 include 包含 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="demoits"/>
struts.xml中的一些参数
1.转发、重定向到Action传递参数
<action name="customer_*" class="crm.web.action.GetParameter"
method="{1}">
<result name="success" type="chain">
<param name="actionName">Demo1Action</param>
<param name="namespace">/</param>
<param name="name">${name}</param> <!-- 如果找不到name那么就传参过去 -->
</result>
</action>
2.如果出现什么错误,跳转到error所对应的页面
<global-exception-mappings>
<exception-mapping result="error" exception="RuntimeException"></exception-mapping>
</global-exception-mappings>
<action name="demo1" class="struts2.test.Demo1" method="test">
<result name="error">/hello.jsp</result>
</action>
3.定义全局结果集
<global-results>
<result name="error" >/hello.jsp</result>
</global-results>