java 板


LINE

上色、连结可点的网志版: http://blog.dontcareabout.us/2012/03/gwt.html ============================================= 这是在劲过吕布的噗浪上遇到的问题。 起因是传给 String.split() 的 RegExp, Java 与 JavaScript 的写法相似、但不是完全相同(参见 GWT 文件), 也就会遇到「development mode 下正确、但 compile 之後得不到预期结果」的窘况。 再者,如果 client/server 端都用 Java 写,也会扩大这个问题的麻烦度。 这时候我们需要 GWT。 (谜之声:你不就在写 GWT 了 [指]) 这里是指 com.google.gwt.core.client.GWT。 这个 class 提供 isClient()、isScript() (isProdMode() 理论上与 isScript() 等意)这两个 static method。 isScript() 是辨别程式码是以 JavaScript 的方式执行、还是以 Java 的方式执行。 在 development mode 下会回传 false, 在 compile 时才由 GWT compiler 改成回传 true。 isClient()(逻辑上)不会区分是不是 development mode, 纯粹辨别程式码是在浏览器上头执行,还是在 JVM 上头执行。 理解这种文字游戏有点麻烦,还是来写个程式比较实在。首先是 client 端的程式: public class Foo extends Composite public static final RpcServiceAsync rpc = GWT.create(RpcService.class); private VerticalPanel panel = new VerticalPanel(); public Foo(){ String result = "[client] GWT.isClient() = " + GWT.isClient() + ", GWT.isScript() = " + GWT.isScript(); panel.add(new Label(result)); rpc.gwtMethod(new AsyncCallback<String>() { @Override public void onSuccess(String result) { panel.add(new Label("[server] "+result)); } @Override public void onFailure(Throwable caught) {} }); this.initWidget(panel); } } 而 Server 端 RpcServiceImpl 的 method 长这样: public String gwtMethod() { return "GWT.isClient() = "+GWT.isClient() + ", GWT.isScript() = "+GWT.isScript(); } 在 development mode 下,会得到: [client] GWT.isClient() = true, GWT.isScript() = false [server] GWT.isClient() = false, GWT.isScript() = false 实际 deploy 到 web server 上,会得到: [client] GWT.isClient() = true, GWT.isScript() = true [server] GWT.isClient() = false, GWT.isScript() = false 如此一来,虽然遇到了抽象渗漏的现象, 但我们还是可以藉由 GWT.sClient()、GWT.isScript() 判断是 development mode 还是 production mode、 是 client 端还是 server 端、给予对应 RegExp,来解决这个问题。 -- 钱锺书: 说出来的话 http://www.psmonkey.org 比不上不说出来的话 Java 版 cookcomic 版 只影射着说不出来的话 and more...... --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.25.13.121
1F:推 superlubu:忘了回来推一下,感谢版主帮忙扶助新手 :D 04/10 20:18







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP