`
icess
  • 浏览: 253418 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Wicket 教程4:如何使用 Include,Panel,Fragment,Link

阅读更多

Wicket 教程4:如何使用 Include,Panel,Fragment,Link

前面我没看到了如何使用一些基本的markup,和几个示例

( http://www.hexiao.cn/blog/index.php?job=art&articleid=a_20060807_153301  ), 这次再来看看几个复杂一点的markup.

下次来看看 Form 及其相关的markup的使用.

[b]Include [/b]是一个和JSP中的include指令功能差不多的markup,用来导入一个文件.

可以使用绝对和相对路径来导入文件, 该类的使用是很简单的.
Java code:
 ...
  add(new Include("header", "header.html"));
  add(new Include("footer", "footer.html"));
    ...
and Html Code:

   ...
  <div>
   <div wicket:id="header">header comes here</div>
   <div>I am the body!</div>
   <div wicket:id="footer">footer comes here</div>
  </div>
   ...
 
上面就可以实现一个简单的布局框架.


[b]Panel: [/b]panel有点类似于swing中的panel,用来放置其他markup, panel的使用也

是很简单的, 如下:
创建一个mypanel类:
class MyPanel extends Panel {
 
 public MyPanel(String id) {
  super(id);
  add(new Label("label", "yep, this is from a component

proper"));
  add(new AnotherPanel("otherPanel"));
 }
}

该类继承与Panel,里面添加了两个markup,一个Label,另外一个Panel(Panel可以

无限嵌套). 然后编写对应的html文件. MyPanel.html

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Wicket Examples - sample panel</title>
</head>
<body>
 <wicket:panel>
  <p style="border: 2px dotted #fc0; padding: 5px;">
   Here are some panel contents for ya.<br />
   Put arbitrairy Wicket components in your Panels,
   like this label: <span wicket:id="label" style="background-

color: aqua" >to be replaced</span>, or<br />
   even another panel: <span wicket:id="otherPanel" 

style="background-color: aqua">also to be replaced</span>.<br />
   You can nest panels any deep you want.
  </p>
 </wicket:panel>

</body>
</html>

下面是使用上面的panel的代码,
Java code:
...
 add(new MyPanel("panel"));
...
Html code:
    <span wicket:id="panel">panel contents come here</span>

[b]Fragment:[/b] 当有很多小段信息要组织的时候,使用很多panel可能是不雅观的,这时

就可以使用Fragment了.
示例如下:
Java code:
...
    add(new Fragment("myPanel1", "frag2"));
...

Html code:
...
<span wicket:id="myPanel">Example input (will be removed)</span>
           
             <wicket:fragment wicket:id="frag1">panel

1</wicket:fragment>
             <wicket:fragment wicket:id="frag2">panel

2</wicket:fragment>
...


[b]Link:[/b] link就是web页面中的连接了, 这里的link可以是一切连接,如 常用的<a/>

, button... 这里的link 和JSF中的link所拥有的功能一样强大.
下面来看几个示例:
普通的link:
Java code:
...
 add(new Link("link1"));
...
Html code:
...
<a href="#" wicket:id="link1">this link is clicked <span

wicket:id="linkLabel1">n</span> times</a>
...
使用不同的html 可以显示为不同的样式,如:
button样式的按钮:
Html code:
<button wicket:id="link2">this button is clicked <span

wicket:id="linkLabel2">n</span> times</button>

or:
<input type="button" wicket:id="link3" value="this button is clicked n

times" />

[b]ExternalLink:[/b] 是link的一种, 特别用来连接到该站点以外的资源, 示例:
Java code:
...
//   add a link that goes to javalobby
add(new ExternalLink("externalLink1", "http://www.javalobby.org", "To

JavaLobby"));
...

Html code:
...
 <a href="#" target="_new" wicket:id="externalLink1">this body

will be replaced</a>
...

[b]PageLink:[/b] 也是link的一种,实现页面之间的跳转: 示例:
Java code:
...
 // 可以有多种方法使用该类,下面是一种推荐的方法
  add(new PageLink("pageLink", new IPageLink(){
   public Page getPage(){
    return new NonBookmarkablePage

(QuickStart4.this);
   }

   public Class getPageIdentity(){
    return NonBookmarkablePage.class;
   }
  }));

 ...
Html code:
...
 <a wicket:id="pageLink">go to our private/ non bookmarkable

page</a>
....

[b]BookmarkablePageLink:[/b] 也是link的一种,实现一种可以作为书签收藏的连接,也

就是无状态的连接. 可以带参数也可以不带参数: 示例:

Java  code :
...
  add(new BookmarkablePageLink("pageLinkNoArgs",

BookmarkablePage.class));


  PageParameters parameters = new PageParameters();
  parameters.put("message", "This message was passed as a

page parameter argument");
  add(new BookmarkablePageLink("pageLinkWithArgs",

BookmarkablePage.class, parameters));

....

Html code:

...
<p>
 <a wicket:id="pageLinkNoArgs">go to our bookmarkable page

without passing any arguments</a>
 </p>

 <p>
 <a wicket:id="pageLinkWithArgs">go to our bookmarkable page

passing a message argument</a>
 </p>
...

讨论: http://bbs.hexiao.cn/thread.php?fid=9

代码下载: http://bbs.hexiao.cn/read.php?fid=9&tid=15&fpage=1 
允许所需要的类库,到这里下载: http://bbs.hexiao.cn/read.php?fid=9&tid=12&fpage=1

分享到:
评论

相关推荐

    wicket-kurs:使用 Spring 进行 Wicket 课程的基本起点

    标题“wicket-kurs:使用 Spring 进行 Wicket 课程的基本起点”和描述“检票口 使用 Spring 进行 Wicket 课程的基本起点”暗示了这是一个关于结合 Wicket 和 Spring 的初级教程,旨在帮助开发者迈出学习的第一步。...

    wicket-dashboard:使用Apache Wicket的简单Web仪表板

    使用wicket-dashboard,您可以轻松地将带有标准和自定义小部件的仪表板添加到wicket应用程序中。 对于仪表板,您可以指定列数,拖放窗口小部件,删除窗口小部件,添加新窗口小部件,更改窗口小部件设置,折叠窗口小...

    wicket7教程

    Wicket还提供了创建可书签链接的能力,包括页面参数的处理、使用wicket:link标签自动创建书签式链接、外部链接以及无状态链接的生成。这些链接不仅可以提供良好的用户体验,还可以通过生成结构清晰、可读性强的URL来...

    wicket-sample:示例 Apache Wicket Web 应用程序,用于使用 Apache Fortress 演示基本的 Java EE 安全性和 RBAC

    wicket-sample README 本文档演示了如何获取、构建和部署 Apache Fortress Wicket 示例应用程序。 要完成本教程,请首先按照本 README 中的步骤进行操作。 接下来是这里的步骤: 先决条件 Java 8++ Apache ...

    wicket_examples:wicket_examples

    4. **URL 映射(URL Mapping)**:Wicket 使用一种可配置的映射机制将URL 映射到特定的页面类,这使得URL 更加友好看,同时提供了可预测的导航结构。 5. **状态管理(State Management)**:Wicket 可以自动管理...

    pm-wicket-archetype:使用Wicket + Guice + Hibernate创建Web应用程序的模板

    pm-wicket原型 Web应用程序模板,支持Wicket + Guice + Hibernate 要求 Java 8 Maven PostgreSQL服务器9.x 重击(可选) PostgreSQL客户端(可选) 不到5分钟即可运行您的项目 设置项目 打开您的终端并运行以下...

    wicket-todo:用 wicket 做 todo

    【标题】"wicket-todo:使用Wicket构建待办事项应用" 在本文中,我们将深入探讨如何利用Java中的Web框架Apache Wicket来创建一个名为“wicket-todo”的待办事项应用程序。Apache Wicket是一个组件驱动的框架,它允许...

    wicket简单实例

    这是一个常见的Web应用示例,它展示了如何使用Wicket创建一个留言簿。用户可以通过表单提交留言,而这些留言会存储在服务器端并显示在页面上。这涵盖了Wicket的表单处理和数据持久化概念。 6. **Wicket_include**...

    Wicket.pdf(Wicket开发指南)

    - Wicket 使用基于 Session 的状态管理机制,确保每个用户的会话独立且隔离。 #### 四、Wicket 基本控件 - **信息输出控件:** - **Label:** 用于显示简单的文本信息。 - **MultilineLabel:** 用于显示多行...

    wicket 6.x 官方教程实例手册 英文版

    wicket 6.x 官方教程实例手册 英文版

    wicket-ace:用于Wicket的AceEditor集成

    wicket-ace提供了Wicket组件,以便在Wicket应用程序中轻松使用。 用法 您可以像在表单中使用文本区域一样使用AceEditorField。 add( new AceEditorField&lt; String&gt; ( " code " , new Model&lt;&gt; ())); &lt; ...

    wicket指南

    1. **基础组件**:包括`Label`(显示文本)、`Link`(点击链接)、`Form`(表单提交)和`Panel`(可重用的组件集合)。 2. **Ajax 支持**:`AjaxLink`、`AjaxSubmitLink`等组件允许异步更新页面部分,提高用户体验。...

    wicket 官方JAVA教程

    **Wicket官方JAVA教程** Wicket是一款开源的Java Web应用程序框架,它强调组件化和声明式编程模型,使得开发人员可以构建出用户界面更加灵活且易于维护的Web应用。本教程将深入探讨Wicket的核心概念、特性以及如何...

    wicket-presentation:Apache Wicket演示文稿的源代码-apache source code

    标题中的“wicket-presentation”可能是指一个特定的模块或示例项目,展示了如何在实际应用中使用Wicket来构建Web界面。通过分析源代码,开发者可以学习如何创建自定义组件,处理用户事件,以及如何利用Wicket的模板...

    wicket-js:wicket-js 使在 Wicket 组件和行为中编写和处理自定义 JavaScript 和 jQuery 变得容易

    使用 wicket-js,您可以以一种干净的方式将任意 JavaScript 代码绑定到 Wicket 组件。 它为类型安全脚本的创建提供了基本的语法元素。 component . add( new JsBehavior () { @Override protected IJavaScript ...

    wicket_workshop:使用 Apache Wicket、Spring Framework 和 Google Guice 的示例 Web 应用程序

    这是一个使用的示例 Web 应用程序。 详情请查看 。 使用 Maven 运行项目: $ mvn jetty:run 当 PermGen 空间出现 OutOfMemoryError 时,设置 MaxPermSize。 例如: $ export MAVEN_OPTS="-XX:MaxPermSize=128m...

    spring-jpa-wicket-bootstrap:使用 Spring、JPA、Hibernate、Wicket 和 Bootstrap 的 J2EE Web 模板。 在 Tomcat 和 Postgres DB 上测试

    该模板使用 maven 并在 Tomcat7 上针对 Postgres 9.3 数据库进行了测试。 要部署它,请按照以下步骤操作: 克隆这个项目, git clone git://github.com/kamranzafar/spring-jpa-wicket-bootstrap.git 创建一个 ...

    wicket-site:Apache Wicket网站的镜像

    Wicket新网站 该存储库包含的站点。 项目信息 该站点基于 。 因此,您必须熟悉Markdown模板语言,并安装了Jekyll(3+版本)才能为该项目做出贡献。 运行项目 只需转到项目根文件夹并执行jekyll serve -w即可生成静态...

    wicket-gatling:Wicket-Gatling 集成

    仅使用开箱即用的 Gatling 时,使用 Gatling 框架对基于 Wicket 的 Web 应用程序进行负载测试并不容易。 这是因为每次请求页面时,有状态 Wicket 页面都会重写 URI,以保持页面的正确状态。 他们还可能使用 AJAX ...

Global site tag (gtag.js) - Google Analytics