gpt4 book ai didi

java - GWT 入门

转载 作者:行者123 更新时间:2023-11-29 22:36:04 25 4
gpt4 key购买 nike

我已经研究 GWT 几天了,我有些困惑。

我有 PHP/JSP 背景,所以当我想创建一个有多个页面的网站时,我只需为每个页面创建一个 PHP 页面,然后让用户选择要查看的内容。

既然我正在研究 GWT,我真的不明白这是如何完成的?

假设我希望我的网站有三个页面(index.html、help.html、contact.html),当加载 GWT 应用程序时调用 onModuleLoad() 方法。然后,我将如何对每个单独的页面小部件进行编码,然后仅使用这一种方法?

查看在 Eclipse 中创建的示例 GWT 应用程序,创建了一个 HTML 页面。如果只有一个 onModuleLoad() 方法,我该如何创建包含多个页面的应用程序?

最佳答案

GWT 可以在 Web 2.0 客户端应用程序中使用,正如 Chris Lercher 和 nvcleemp 所提到的,或者您可以将它与更传统的页面 View /重新加载模型结合使用。如果你只是想将 DHTML 功能注入(inject)现有的静态页面,你可以寻找特定的元素 ID 来注入(inject),或者你可以在调用 onModuleLoad() 时读取 javascript 嵌入式配置变量以确定你处于什么状态/模式以及什么您应该运行的 GWT 客户端功能的类型。

例如,使用不同的注入(inject)点:

第 1 页:

<html>
<head>
...
<script type="text/javascript" src="yourmodule.nocache.js"></script>
...
</head>
<body>
...
<div id="injectMode1"></div>
...
</body>
</html>

第 2 页:

<html>
<head>
...
<script type="text/javascript" src="yourmodule.nocache.js"></script>
...
</head>
<body>
...
<div id="injectMode2"></div>
...
</body>
</html>

您的 GWT 入口点:

@Override
public void onModuleLoad() {
final Panel mode1 = RootPanel.get("injectionMode1");
if (mode1 != null) {
mode1.add(new ModeOneWidget());
}
final Panel mode2 = RootPanel.get("injectionMode2");
if (mode2 != null) {
mode2.add(new ModeTwoWidget());
}
}

编辑:

使用 javascript 变量,在每个要嵌入 GWT 功能的页面上,您可以执行类似于以下操作的操作:

页面 foo:

<html>
<head>
...
<script type='text/javascript'>
var appMode="mode1";
</script>
<script type="text/javascript" src="yourmodule.nocache.js"></script>
...
</head>
...

您的 GWT 入口点:

private static final native String getAppMode()/*-{
return $wnd.appMode;
}-*/;

@Override
public void onModuleLoad() {
String appMode = getAppMode();
if(appMode != null){
if(appMode.equals(MODE1)){
...
}
...
}
}

关于java - GWT 入门,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4985252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com