struts2拦截器中默认的defaultStack,使用时有顺序吗?就是它要在其他拦截器后面吗?顺序不同有啥影响?
展开全部
会有影响,而且影响很大的。struts2里面有很多已经组合好的拦截器栈,这些拦截器栈里面的拦截器的顺序是精心设计的。举个例子,假如你现在自己定义了一个验证输入内容的拦截器。如果你在加拦截器栈的时候把defaultStack放在了后面,那么你可能无法验证传进的参数。原因是,defaultStack里面有一个叫params的拦截器,这个拦截器是用来将你传进来的参数封装到action中的对象中的,所以你如果在你的验证拦截器中写验证封装到这个对象中的参数时你会得到空值,因为还没有封装进来。defaultStack里面还有很多有用的拦截器,总之把这个拦截器放在你定义的拦截器的前面会比较好(当然要考虑你的拦截器实现的是什么功能,才能确定拦截器的顺序,总之这个顺序需要你自己精心的安排的,另外拦截器是递归调用的!),可以自己做个实验验证一下我说的。
2012-05-16 · 知道合伙人互联网行家
关注
展开全部
defaultstack必须放在所有拦截器的最后
而且如果自定义了拦截器,那么在struts.xml配置拦截器的时候一定要在最后加上defaultstack否则defaultstack将不会被调用
而且如果自定义了拦截器,那么在struts.xml配置拦截器的时候一定要在最后加上defaultstack否则defaultstack将不会被调用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询