最近看到Google发布了新的基于Ajax的图片搜索功能,正好本人在研究Wicket,在网上Google了一下,看到WicketStuff中只有对GoogleMap的支持,因此想自己开发一个,顺便练练手。
创建工程和代码框架
首先创建一个Wicket工程,并创建一个页面。我本人用的是Wicket Bench,不过它是针对1.2设计的,而我的库用的是1.3,因此,自动生成的import有问题,需要手工改一下。不过,对于eclipse来说,这是小菜一叠儿啊。然后添加一个wicket component,名字叫GImageSearch。
java 代码
- public class GImageSearch extends Panel {
- public GImageSearch(String id, IModel model) {
- super(id, model);
- }
- }
我只实现了这个构造函数,model是用来获得搜索的条件的字符串。现在先不管他,后面会用到。
相应的Html页面
xml 代码
- <html xmlns:wicket>
- <wicket:panel>
- <div id="searchcontrol">Loading<!---->
<wicket:panel> </wicket:panel>
加入Ajax支持
由于要用到Ajax,因此参考了一下AjaxEditableLabel的例子。对于模块化的Wicket来说,引入Ajax涉及到几个问题:
1. 额外的js文件的引入,一般是在Head中。
2. 对当前component的html的动态修改。
3. Ajax回调到Server。
对这些问题,Wicket都有很好的解决方案。
实现AjaxBehavior
首先创建一个内部类:
java 代码
- protected class SearchAjaxBehavior extends AbstractDefaultAjaxBehavior {
- @Override
- public void renderHead(IHeaderResponse response) {
- }
- @Override
- protected void respond(AjaxRequestTarget target) {
- }
- }
在构造函数后面加入一行:
java 代码
- add( new SearchAjaxBehavior());
这样当Component被加入到页面中的时候,会自动调用renderHead完成对HTML-Head的扩充。
加入代码(完全照抄Google的例子):
java 代码
- @Override
- public void renderHead(IHeaderResponse response) {
- response.renderCSSReference("http://www.google.com/uds/css/gsearch.css");
- response.renderJavascriptReference("http://www.google.com/uds/api?file=uds.js&v=1.0");
-
- StringBuffer buffer = new StringBuffer("")
- .append("function initGSearch() {\n")
- .append("\tvar searchControl = new GSearchControl();\n")
- .append("\tsearchControl.setOnKeepCallback(this, MyKeepHandler);\n")
- .append("\tsearchControl.addSearcher(new GimageSearch());\n")
- .append("\tsearchControl.draw(document.getElementById(\"" + "searchcontrol" + "\"));\n")
- .append("}\n")
- .append("\tfunction MyKeepHandler(result) {\n")
- .append("}")
- .append("GSearch.setOnLoadCallback(initGSearch);\n");
- response.renderJavascript(buffer.toString(), "gsearch-init");
- }
现在可以看一下效果了:别忘了加上WebPage的代码,很简单的:
java 代码
- public class ImageTest extends WebPage {
- public ImageTest() {
- add( new GImageSearch("gsearch",null));
- }
- }
html 代码(JavaEye贴入html代码好像有问题,哪位告诉一下如何贴?)
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
- <title>Hello World - Google AJAX Search API Sample<!---->title>
- <!---->head>
- <body>
- <span wicket:id="gsearch" />
- <!---->body>
- <!---->html>
接下来,我们要将用户喜欢的图片信息保存到服务器。To be continued...
- 大小: 279.2 KB
分享到:
相关推荐
具体来说,第一个选择框包含三个选项:“1”、“2”、“3”,而第二个选择框中的选项则为第一个选择框选中项的十倍。 为了实现这一功能,我们需要重写第一个选择框的`onChange`方法,使得当第一个选择框的值发生...
Wicket是一个灵活而强大的Java Web框架,它提供了一套简洁高效的API用于构建复杂的Web应用程序。与.NET平台的开发方式相似,Wicket允许开发者在HTML页面中声明控件,并在Java代码中处理这些控件的逻辑。本篇文章将...
Ajax-jaulp-wicket.zip,这个项目是ApacheWicket组件和实用程序的集合。,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不...
Wicket 是一个强大的Java Web应用程序框架,它提供了一种组件化的开发方式,使得开发者可以创建出高度交互且易于维护的Web应用。Wicket的基础控件是构建用户界面的核心元素,这些控件帮助开发者构建出丰富的表单、...
2. 第一个Wicket应用:介绍如何创建一个简单的"Hello, World!"应用,理解Wicket的基础架构。 3. 组件和页面:讲解Wicket中的组件模型,如何创建和使用组件,以及如何组织页面结构。 4. 模型和数据绑定:解释如何处理...
- **低学习曲线:** 相比其他框架,Wicket 提供了一个更直观的 API 和简洁的文档,使得新用户能够快速上手。 - **规则配置:** 减少了对 XML 配置文件的依赖,简化了开发流程。 - **Ajax 支持:** 内置了对 Ajax ...
1. **创建页面类**:在Wicket中,每个页面都有一个对应的Java类,类中定义了页面的组件和行为。 2. **绑定HTML模板**:页面类与HTML模板通过`@MountPath`注解或`WebPage`的构造函数关联。 3. **组件定义**:使用`add...
- **Wicket的历史与背景**:Wicket是一款基于Java的开源Web应用框架,它强调组件化的编程方式,并且支持多种现代Web开发特性,如AJAX等。Wicket的设计理念是为了简化Web应用的开发过程,使开发者能够更加专注于业务...
Wicket是一个流行的Java web应用程序框架,它提供了强大的组件模型和灵活的国际化支持。 **一、Wicket的国际化基础** 1. **什么是国际化(i18n)**:国际化是一种软件设计方法,使得应用程序能够适应不同地区的...
Wicket 是一个开源的Java Web框架,用于构建可重用且易于维护的Web应用程序。它以其组件模型和数据绑定机制而闻名,与Struts等传统MVC框架相比,提供了更直观和面向对象的编程方式。 在Wicket基础知识培训中,首先...
- **第1章:Wicket是什么**:介绍Wicket的历史背景、设计理念以及与其他框架的区别。 - **第2章:Wicket的架构**:深入探讨Wicket的内部架构,包括组件、模型和会话等核心概念。 - **第3章:构建一个简单的Wicket...
第一个例子 **3.1 老姜一块"HelloWorld"** 本节介绍了一个简单的Wicket "HelloWorld" 示例,展示了如何快速搭建一个Wicket项目。 **3.2 Wicket程序的开发步骤** - **3.2.1 制作一个Html模板** 创建HTML...
Wicket是一个开源的Java Web应用程序开发框架,它简化了Web应用程序的开发,通过将组件化方法应用于Web应用程序开发,允许开发者使用POJO(普通Java对象)来构建Web应用程序。它具有清晰的MVC(模型-视图-控制器)...
Apache Wicket 是一个开源的Java Web应用程序框架,它专注于提供简单、声明式、以及组件化的Web开发模型。在“apache-wicket-7”这个主题中,我们主要关注的是Wicket框架的第七个主要版本,即7.0.0-M3。这个版本是一...