gpt4 book ai didi

java - 如何创建 Java 自定义 Web 控件?

转载 作者:搜寻专家 更新时间:2023-11-01 02:34:52 24 4
gpt4 key购买 nike

这个问题最初出现在我的脑海中是“我可以在 Servlet 中使用 AWT 控件吗?”,这将显示我对这个主题的所有无知。

我是 JAVA 技术的新手,但经过一些阅读,我似乎理解 AWT 控件直接连接操作系统 GUI 元素,因此无法在要注入(inject)的 Servlet 中使用或扩展 JPanels、JButtons 等在 JSP 中并让浏览器呈现这些控件(替代方案可能是在 JSP 中嵌入小程序,但我不想这样做)。

我正在寻找一种使用 JSP 和 Servlet 构建自定义可重用 Web 控件的方法。

这通常是如何完成的,您能否提供一些示例/链接?

编辑:这是我对 Google Application Engine 进行的测试运行的一部分 - 因此探索 Google Web Toolkit 对我来说可能是有意义的 - 任何指向该方向的指针都是也很感激。

感谢任何帮助!

最佳答案

AWT是在桌面上呈现 UI 的特定于操作系统的部分,而不是在 JSP、Servlet 等所在的 Web 端。更具体一点,像Swing之类的东西(其中包含您提到的 UI 组件中的那些 JPanel、JButton 等)和 SWT当前基于 AWT 并在其之上工作以呈现 UI 并使其按预期工作。

不幸的是,所有这些都意味着您不能在网页上使用基于 AWT 的组件,因为网页(通常)是平台不可知的,因为它们无法决定 UI 的各个部分是如何呈现的,只有一堆标记被视为对 Web 浏览器的一种请求,要求 Web 浏览器执行 Web 设计师希望做的事情,而无需 100% 保证最终结果将是设计师想要的。

为了在 Java 的 Web 端实现 Swing/AWT 类 UI 创建,已经进行了很多重新发明轮子,因为它是一个聪明的模型,就像您似乎已经知道的那样 Google Web Toolkit试图尽自己的一份力量让 Web 看起来更像一个桌面应用程序,而实际上它只是自动化底层所需的 JavaScript Ajax 以使网页表现得就像一个桌面应用程序。另一个框架是 Tapestry我个人没有使用过,但有些人认为这也是一个不错的选择。

当然还有我个人最喜欢的 Apache Wicket这允许您在 Java 代码和标记之间实现真正的分离,并且它的行为也与 Swing UI 代码非常相似!事实上,对于最简单的事情,Swing 的 UI 组件类存在一大堆名称冲突。假设您熟悉桌面应用程序 UI 的编码,我强烈推荐 Wicket,它抽象出枯燥乏味的部分(Servlet、URL 解析、页面可 Collection 性、安全性......)并用类似的事件驱动模型替换它们(但不等于)到 Swing 的 EDT这是桌面 UI 魔术通常会发生的地方。

虽然这与您正在寻找的东西完全不同,但使用 Wicket,您可以创建这样一组 POJO Web 组件,您可以在任何地方重复使用它们,从而获得您想要的东西。不过要提醒一句,Wicket 假定您真的知道如何使用 Java 进行编码,一些可笑的简单事情一开始可能会很乏味,但最终您应该对所获得的东西感到非常满意。

关于java - 如何创建 Java 自定义 Web 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/789075/

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