我的一个Action:
[code="java"]
public class LogAction extends ActionSupport implements SessionAware,
CookiesAware {
......
private Map session;
private Map cookies;
public void setSession(Map<String, Object> session) {
this.session = session;
}
public void setCookiesMap(Map<String, String> cookies) {
this.cookies = cookies;
}
......
}
[/code]
我不知道做了什么改动,本来Action里还能拿到Cookies的,现在不知道怎么不行了
我在setSession里加了打印语句:
[code="java"]System.out.println("session...");[/code]
setCookiesMap里也加了:
[code="java"]System.out.println("cookies...");[/code]
可是只有session...被打印出来,而Cookies却没有,请问只是怎么回事?
[b]看看package继承的哪个package?
以及当前的package中是否有default-interceptor-ref
这应该就是你的问题所在,缺少CookieInterceptor。[/b]
[color=blue][b]看看你的Interceptor Stack的内容,里面应该没有CookieInterceptor[/b]
[/color]
[color=blue][b]试试这样,将cookieInterceptor加入到默认的Interceptor stack中[/b][/color]
[code="xml"]
</interceptor-stack>
</interceptors>
...
[/code]
[color=blue][b]明确更正一下,这个缺省的没有[/b][/color]
[quote]
[code="xml"] namespace="/">
namespace="/">
[/code]
这个继承是有的 [/quote]
如果要操作cookie的而不是单纯地获得值的话,还是通过HTTPServletRequest来操作吧。
弱弱地问一下啊,获取cookie是不是添加cookieInterceptor才成功的?
[color=blue][b]
至于为什么得到的cookie是String类型的key、value,以至于 不能操作属性,请看见我的这篇博客:[/b][/color]
[url]http://xiaolongfeixiang.iteye.com/blog/656454[/url]
[quote]好像是这个原因,那缺省的包下默认的拦截器又是什么呢[/quote]
默认的Interceptor中不包含cookieInterceptor。
仔细看看这几个回复,你想要答案都在其中。