wicket的模板继承(一)

wicket的组件和html文件总是成对出现,比如A.java和A.html。

如果没有成对出现,可能是inline模板,或者来自继承。

以wicket内置的PagingNavigator组件为例,查看源文件包,有对应的PagingNavigator.html文件存在。

现在新建一个MyPagingNavigator类,继承自PagingNavigator。

这是PagingVavigator.html的内容:

<wicket:panel>
	<a wicket:id="first" class="first">&lt;&lt;</a>
	<a wicket:id="prev" class="prev">&lt;</a>
	<span wicket:id="navigation" class="goto">
		<a wicket:id="pageLink" href="#"><span wicket:id="pageNumber">5</span></a>
	</span>
	<a wicket:id="next" class="next">&gt;</a>
	<a wicket:id="last" class="last">&gt;&gt;</a>
</wicket:panel>

如果没有提供MyPagingNavigator.html,那么MyPagingNavigator将从PagingNavigator.html集成模板。

现在提供自己的html模板,让它变成purecss格式:

<wicket:panel>
<a wicket:id="first" class="first" style="display:none;">&lt;&lt;</a>
<ul class="pure-paginator">
    <li><a wicket:id="prev" class="pure-button prev" href="#">«</a></li>
    <span wicket:id="navigation" class="goto">
    <li><a wicket:id="pageLink" class="pure-button" href="#"><span wicket:id="pageNumber">5</span></a></li>
    </span>
    <li><a wicket:id="next" class="pure-button next" href="#">»</a></li>
</ul>
<a wicket:id="last" class="last" style="display:none;">&gt;&gt;</a>
</wicket:panel>

可见这样的写法可以达成一定的效果,但是可控制手段非常受限,最终你必须通过阅读pagingNavigator的源代码,实现自己的基于purecss的paginator。

相对于熟悉js操控dom,wicket看起来笨拙许多。但是基于组件的重用,会让一切辛苦都回归价值。

时间: 2024-08-06 07:58:59

wicket的模板继承(一)的相关文章

tp框架视图层view——模板继承

在做网站的时候,每个网站都有头部和尾部,也就是菜单栏和页脚,网站的各个子网页的头部和尾部基本就是一样的,所以tp框架提供了一种模板继承的方法: 1.首先在View的Main文件夹下建立一个base.html页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Django模板继承

base.html <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>{% block title %}{% endblock %}</title></head> <body><h1>模板继承</h1>{% block content %}{% endbloc

ThinkPHP模板继承和修改title

先说下模板继承: 假定:在View文件夹中 -> Public  公共模块 ->base/header/top/footer 4个html文件 这下面base文件使用include引入其他3个文件,其中title用block标签,给个name属性,在不同的模板中可以实用block来重新定义title值, block 标签,属性是main的可以,在不同的模板的写不同的内容 <!DOCTYPE html> <html lang="en"> <hea

django之模板继承

1.源html文件:命名为3.html文件 <!DOCTYPE html><html><head><title>模板</title></head><body><h1>模板3</h1> {% block content %} <p>hello world</p>{% endblock %} </body></html> 2.继承文件命名为:4.html,

《Flask web开发》笔记2:模板---继承、bootstrap

前言:今天重新梳理了一下前端方面的知识,发现学习东西还是要用,不然忘得快,废话不多说,开始!! 一.模板继承 1.概念:   书上说,模板继承,类似Python上的继承: 其实个人觉得和所有继承都一样. 2.应用场景:当我们写一系列类似的jinja模板的时候发现,我们总是在重复做些无用的操作,{%%}这东西敲得也蛮累的,这时候就需要引入模板继承: 3.例子: 步骤1. 先建立一个模板,作为 '基类': jilei.html: <html> <head> {% block head

tp框架---View视图层---模板继承(举例说明)

当我们做动态页面时,我们会发现一个网站的头部和尾部是相同的,那么我们如何用tp框架来做模板呢 ? 先看一下注意事项: (1)每个区块由<block></block>标签组成 (2)子模板中使用extend标签继承模板 (3)注释语法:{/* 注释内容 */ } 或 {// 注释内容 }  一.看一下基本的模板继承 (1)先做出模板页面  Ceshi/View/Main/base.html <!DOCTYPE html> <html> <head>

Django1.9开发博客(6)- 模板继承

模板继承就是网站的多个页面可以共享同一个页面布局或者是页面的某几个部分的内容.通过这种方式你就需要在每个页面复制粘贴同样的代码了. 如果你想改变页面某个公共部分,你不需要每个页面的去修改,只需要修改一个模板就行了,这样最大化复用,减少了冗余,也减少了出错的几率,而且你敲的代码也少了. 创建一个base模板 一个base模板就是你全站所有页面都会继承的最基本的网站框架模板.我们在blog/templates/blog/中创建一个base.html模板: blog └───templates └──

thinkPHP框架 简单的删除和修改数据的做法 和 模板继承的意思大概做法

BiaodanController.class.php控制器页面 <?php namespace Admin\Controller; use think\Controller; class BiaodanController extends Controller{ public function zhuyemian(){ $n = D("nation"); $attr = $n->select(); $this->assign("n",$attr)

thinkphp中模板继承

模板继承是3.1.2版本添加的一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层.模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义的区块进行重载.因此,模板继承的优势其实是设计基础模板中的区块(block)和子模板中替换这些区块.每个区块由<block></block>标签组成,并且不支持block标签的嵌套.