最近看到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
分享到:
相关推荐
wicket的ajax范例(级联选择框)
Ajax-jaulp-wicket.zip,这个项目是ApacheWicket组件和实用程序的集合。,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不...
Wicket开发和.Net很相似,在html页面中对控件做wicket的声明,然后在java代码中便可以生成一控件。控件的值或内容都以Model存放,所以当修改其值或内容时都是在修改Model中的对象,取值时只需要取到Model中对象再...
wicket 基础知识培训,主要是讲解wicket入门知识,通过和struts比较来进行讲解。
wicket基础控件,生成的源码,比较小
我的第一个Wicket项目在Google AppEngine上运行。 基本上是一个简单的网上商店。 如果您有兴趣,请访问下面的链接,请: : 建立步骤: 先决条件:请确保您已安装以下程序。 还要确保您具有这些程序的完全相同的...
Chapter 1: Validating and Converting User Input 7 Introduction 7 Performing form-level custom validation 7 Creating a custom validator 12 Composing multiple validators into a single reusable ...
wicket开发指南,很简洁,可以看看,对于wicket框架的学习很有帮助
NULL 博文链接:https://fengyunxiao.iteye.com/blog/684835
Apache Wicket是一个开源的,基于Java,基于组件的Web应用程序框架。 通过适当的标记/逻辑分离,POJO数据模型以及令人耳目一新的XML缺乏,Apache Wicket使开发Web应用程序变得简单而又愉快。 交换样板,复杂的调试...
wicket国际化例子 含有wicket:message StringResourceModel 等读取properties资源文件的代码示例
3.我为什么要学习Wicket? 3.1。我们都喜欢意大利面:-) ... 3.2。面向组件的框架 - 概述 3.3。面向组件的Web开发框架的优点 3.4。Wicket与其他面向组件的框架相比 威克特说“你好世界!” 4.1。Wicket分发和模块 4.2...
wicket开发指南,wicket 新型的web开发框架,现以能无逢支持jsr168/286
Wicket开发指南 Wicket开发指南 Wicket开发指南
它有助于将 Wicket Ajax Behavior 侦听器与实际客户端 UI 功能分开,同时保持与 Wicket 组件的耦合。 它提供了一个(基本的),允许您在 Java 中构建 JavaScript 和 jQuery 表达式。 例子 使用 wicket-js,您可以...
Wicket前生后世篇 Wicket是什么?简单点说,它就是一个基于...但是这个事件对我的第一感觉就是晕,第二感觉就是特别的晕,虽然目前Java世界的Web框架一通混战,但这样一个联盟,所给出的东西很可能是第二个EJB。
About Wicket About Basic Wicket Hello World from
开发详解想写一份这样的Wicket 文档,源于2005 年中,那是用Wicket1.0 完成了第一个项目以 后的想法,觉得如此好的一个Web 框架,应该让更多的开发人员了解和使用它。因此在 05 年9 月份的时候开始了这份文档的初稿...
wicket学习文档
Wicket 目前最新的版本是1.2.2 版,已经支持了AJAX,但感觉这个框架的发展时间毕 竟还是短了一点,尽管设计思想很不错,但还是有许多问题存在的,包括控件的数量,BUG 较多等,希望2006 年它可以尽快的成熟起来。