2014-10-02 47 views
2

我已经为用户名创建了cookie。它的工作正常。Cookie返回在GWT中未定义

但我的问题是: 当我清除cookie并尝试Cookies.getCookie(“uname”);那么它将返回undefined insted为null。

那么如何处理未定义的值?

我想,如果uname没有设置,然后去其他部分;

请帮帮我。

+1

你确定吗? [JavaDoc](http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/client/Cookies.html)表示它会返回:_该cookie的值,如果cookie不存在,则返回null 。 – 2014-10-02 10:18:56

+0

是@spider。我确定。我正在尝试检查cookie是否为空。但它永远不会返回null并返回undefined。 – 2014-10-02 10:38:36

+0

您是否肯定您没有将Cookie设置为“undefined”,方法是将其设置为'null'服务器端? GWT文档非常明确,我不想在第一时间假设他们身边有bug。当你“清除cookie”时检查你的标题。 – 2014-10-02 10:44:58

回答

0

是的,就是这样。失败的设计,请看这里
https://code.google.com/p/google-web-toolkit/issues/detail?id=2994

建议的解决方法的工作原理:

String val = Cookies.getCookie("uname"); 
if (val == null || "undefined".equals(val)) { 
    ... 
} else { 
    ... 
} 

但通常看来,即使没有此解决办法工作。在我的情况下,我得到了JavaScript级别的“未定义”,但在Java代码中,检查null值就足够了。让代码崩溃的真正问题在几行之后,并且与getCookie()方法没有任何关系。所以看看你是否真的确定了问题的关键。