struts2拦截器

来源:互联网 发布:数据魔方关键词 编辑:程序博客网 时间:2024/06/14 22:00

本文的拦截器部分是好的,但是session部分不对,这里有两个对的:

http://blog.csdn.net/weiyanghuadi/article/details/8931820

http://blog.csdn.net/weiyanghuadi/article/details/9050245

本文把拦截器和sessionAware写在一起了,本来觉得DummyAction类简单,让它实现了一个sessionAware借口,想看看struts2中的session,
无奈太简单了,以至于框架总是无法生成session对象。框架不给注入,我只好自己new一个Map,当然不起作用!

如果没有客户端请求,这里指提交表单,表单中的文本域要对应action中的属性,那么struts2控制器就不会产生Map对象.我按这个思路改,还是空空空!I am really breaking my head to get session object in my action class。When I get the session map using sessionaware interface, I get an empty map.

我是想:通过actionInvocation.getInvocationContext().getSession();获得struts2的session

package org.arpit.javapostsForLearning;import java.util.HashMap;import java.util.Map;import javax.servlet.http.*;import org.apache.struts2.ServletActionContext;import org.apache.struts2.interceptor.SessionAware;import com.opensymphony.xwork2.ActionSupport;public class DummyAction extends ActionSupport implements SessionAware {private Map session2;private String justForHavingMapObject;    public String execute()    {        System.out.println("   In Action");        System.out.println(getJustForHavingMapObject());        //如果下面直接用session.put,则有null exception        //setSession(Map session);        //this.session.put("kankan","liusir");        NiMaNull();        return SUCCESS;    }        //public Map getSession(){    //session=actionInvocation.getInvocationContext().getSession();    //return session;   // }        public void NiMaNull(){    //session.get("kanak");    //session.put("kankan","liusir");    System.out.println(getJustForHavingMapObject());    session2=new HashMap();    session2.put("kankan","liusir");    }        public void setSession(Map session3) {this.session2 = session3;//System.out.println(this.session.get("JSESSIONID"));System.out.println("who use setSession");}public String getJustForHavingMapObject() {return justForHavingMapObject;}public void setJustForHavingMapObject(String justForHavingMapObject) {System.out.println("inside setJustFor");this.justForHavingMapObject = justForHavingMapObject;}}

package org.arpit.javapostsForLearning;import java.util.Map;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.Interceptor;public class FirstInterceptor implements Interceptor {@Overridepublic void destroy() {}@Overridepublic void init() {}@Overridepublic String intercept(ActionInvocation actionInvocation) throws Exception {String startInterceptor = "   Start Interceptor 1";System.out.println(startInterceptor);/* * Map session = actionInvocation.getInvocationContext().getSession(); * String temp=(String)session.get("kankan"); System.out.println(temp); */String result = actionInvocation.invoke();Map session = actionInvocation.getInvocationContext().getSession();if (session == null) {System.out.println("no fucking session");} else {System.out.println("yes session");}String temp = (String) session.get("kankan");System.out.println(temp);String endInterceptor = "   End Interceptor 1";System.out.println(endInterceptor);return result;}}

<body><s:form action="Dummy"><s:textfield name="justForHavingMapObject"label="justForHavingMapObject" /><s:submit value="For calling Dummy Action" align="center" /></s:form></body>

<package name="default" extends="struts-default" namespace="/">        <interceptors>            <interceptor name="firstInterceptor"                class="org.arpit.javapostsForLearning.FirstInterceptor" />            <interceptor name="secondInterceptor"                class="org.arpit.javapostsForLearning.SecondInterceptor" />        </interceptors>                        <action name="Dummy" class="org.arpit.javapostsForLearning.DummyAction">        <interceptor-ref name="firstInterceptor"/>        <interceptor-ref name="secondInterceptor"/>            <result name="success">Welcome.jsp</result>            <result name="input">login.jsp</result>        </action>    </package>

原文:http://javapostsforlearning.blogspot.com/2012/07/struts-2-interceptors-with-example.html

源代码:http://pan.baidu.com/share/link?shareid=3673532014&uk=3878681452

原创粉丝点击