我在下面一個簡單的場景中遇到的問題上GWT codeserver parameter
,GWT codeserver參數
項目結構
myapp
+src
++mypkg
---MainWindow.gwt.xml
---NextWindow.gwt.xml
+++client
----MainWindow.java
----NextWindow.java
+war
--MainWindow.html
--NextWindow.html
MainWindow.gwt.xml
<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='mainwindow'>
<inherits name='com.google.gwt.user.User'/>
<entry-point class='mypkg.client.Mainwindow'/>
<source path='client'/>
</module>
MainWindow.java
package mypkg.client;
import com.google.gwt.core.client.*;
import com.google.gwt.event.dom.client.*;
import com.google.gwt.user.client.ui.*;
public class MainWindow implements EntryPoint {
@Override
public void onModuleLoad() {
Button button = new Button("NextWindow!");
button.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Window.open("/NextWindow.html", null, null);
}
});
RootPanel.get().add(button);
}
}
MainWindow.html
<!doctype html>
<html>
<head>
<title>MainWindow</title>
<script type="text/javascript" language="javascript"
src="mainwindow/mainwindow.nocache.js"></script>
</head>
<body>
<h1>Hi, MainWindow!</h1>
</body>
</html>
NextWindow.gwt.xml
<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='nextwindow'>
<inherits name='com.google.gwt.user.User'/>
<entry-point class='mypkg.client.NextWindow'/>
<source path='client'/>
</module>
NextWindow.java
package mypkg.client;
import com.google.gwt.core.client.*;
import com.google.gwt.user.client.ui.*;
public class NextWindow implements EntryPoint {
@Override
public void onModuleLoad() {
RootPanel.get().add(new Label("Hi, NewLabel!"));
}
}
NextWindow.html
<!doctype html>
<html>
<head>
<title>NextWindow</title>
<script type="text/javascript" language="javascript"
src="nextwindow/nextwindow.nocache.js"></script>
</head>
<body>
<h1>Hi, NextWindow!</h1>
</body>
</html>
在Devmode
推出從編譯MYAPP李NK,
http://127.0.0.1:8888/MainWindow.html?gwt.codesvr=127.0.0.1:9997
點擊按鈕 「NextWindow的」,然後GWT browser plugin
彈出一個投訴窗口,
Module NextWindow need be (re)compiled!
確認,然後一個新的瀏覽器窗口,是從Prodmode
鏈接打開,
http://127.0.0.1:8888/NextWindow.html
而不是所需的鏈接Devmode
,
http://127.0.0.1:8888/NextWindow.html?gwt.codesvr=127.0.0.1:9997
因此它只顯示,
Hi, NextWindow!
但是很期待下面的內容不會顯示出來,
Hi, NewLabel!
如果我們落後GWT codeserver parameter
?gwt.codesvr=127.0.0.1:9997
的源代碼,這個問題可以解決通過犧牲Devmode
和Prodmode
之間的source level
的一致性。
確實有哪些更好的解決方案?
您可以檢查您是在生產模式下還是在開發模式下運行。取決於你附加的代碼服務器參數。您可以使用GWT.isProdMode()檢查模式。 – Seshagiri
謝謝,'@ MarioP'在下面給出了相同的答案。 – sof