wicket同所有的 MVC 框架一样,拥有自己 Model 层,并通过自己的 Model 向控件提
供数据,控件可以从 Model 中取得数据,还可以将数据保存到 Model 中。
wicket.model.IModel 这样一个接口作为 Model 层。而将具体模型结构的处理交给控件。如
Label 控件只需要从 Model 中取得一个字符串,或者一个能够转成字符串的对象即可,而
ListView 就需要一个 List,从而提供多条数据。
1、最简单的Model,wicket.model.Model,支持支持放入一个对象,然后取出一个对象,当然对象必须实现Serializable接口。
new Label("xx", "xxxxxxx")
//直接使用字符串来构造对象,内部封装了Model
2、支持国际化的 Model
Wicket 为了更好的支持国际化,所以提供了一个 StringResourceModel 来自动将 Properties 文件中的数据转换成 Model 中的字符串数据,而且它还支持 format,可以将字符串中的变量进行文字替换,可以有效的简化开发工作。
a、使用User bean
UserInfo_zh_CN.properties
#用户名是
name=\u7528\u6237\u540D\u662F\${name}
#出生日期是
birthday=\u51FA\u751F\u65E5\u671F\u4E3A${birthday}
UserInfo.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<span wicket:id="name">用户名</span>
<BR />
<span wicket:id="birthday">生日</span>
</body>
</html>
java
UserInfo.java
package com.wicket;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.StringResourceModel;
public class UserInfo extends WebPage {
public UserInfo() {
User user=new User();
user.setName("小明");
StringResourceModel nameModel=new StringResourceModel("name", this, new Model(user));
add(new Label("name", nameModel));
StringResourceModel birthdayModel = new StringResourceModel("birthday", this,new Model(user));
add( new Label("birthday", birthdayModel));
}
}
b、使用map,省略bean文件,减少了一个类的数量
package com.wicket;
import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.StringResourceModel;
public class UserInfo extends WebPage {
public UserInfo() {
// User user=new User();
//user.setName("小明");
/*
* 省略User bean对象
*/
Map user=new HashMap();
user.put("name","小明");
user.put("birthday", new Date());
StringResourceModel nameModel=new StringResourceModel("name", this, new Model((Serializable) user));
add(new Label("name", nameModel));
StringResourceModel birthdayModel = new StringResourceModel("birthday", this,new Model((Serializable) user));
add( new Label("birthday", birthdayModel));
}
}
相关推荐
IoT-Camera学习笔记之初识IoT-Camera
“初识Python-公共课-pdf.zip”是一个为编程初学者量身打造的压缩包文件,它通过提供PDF格式的学习资料,帮助用户快速入门Python编程,掌握编程的基本概念和技能,为未来的编程之旅打下坚实的基础。
01初识Scratch-游来游去的小鱼
【Oracle安装-卸载-初识Oracle-笔记】 Oracle是一种广泛应用的关系型数据库管理系统,尤其在企业级应用中占据重要地位。对于初次接触Oracle的人来说,理解其安装、卸载过程及基本操作是至关重要的。 一、下载地址 ...
04-requests进阶-初识反爬 03-数据解析 02-爬虫概念 01-Python基础 6.9 Scrapy处理翻页与实现模拟登录1 .mp4 817.6MB 6.8 Scrapy实战案例一1 .mp4 694.7MB 6.7 Scrapy基本使用入门 .mp4 1.9GB 6.6 MongoDB...
1. 变量与数据类型:C语言提供了多种数据类型,如int(整型)、char(字符型)、float(浮点型)和double(双精度浮点型)。变量是存储数据的容器,声明变量时需要指定其数据类型。 2. 运算符:C语言支持算术运算符...
002-初识python-python介绍 003-初识python-软件安装 004-初识python-windows软件安装 005-初识python-mac软件安装 006-第1个程序-新建项目 007-第1个程序-注释 008-第1个程序-打印变量 009-第1个程序-一行打印多个...
1、hive的产生背景 2、hive的定义 3、hive的本地安装 4、hive的基本类型 5、hive的基本命令
初识Firebug全文--Firebug的使用.mht初识Firebug全文--Firebug的使用.mht初识Firebug全文--Firebug的使用.mht初识Firebug全文--Firebug的使用.mht初识Firebug全文--Firebug的使用.mht初识Firebug全文--Firebug的使用...
初识 Rosetta Workshop 课件 1 - Introduction (英文版) 在这篇课件中,我们将介绍 Rosetta 的基本概念和使用方法,包括如何运行基本的 Rosetta 应用程序、输入/输出文件类型、选项等,以及如何导航 Rosetta。 ...
windows
【标题】:“初识PLC-认识FXN系列PLC共8页.pdf.zip”提示我们,这个压缩包文件包含了一份关于初步了解可编程逻辑控制器(PLC)的文档,特别是针对FXN系列的PLC。FXN系列是三菱电机推出的 PLC 产品线,常见于工业自动...
1. **处理速度**:PLC的运行速度通常以毫秒或微秒计算,高速的CPU使得PLC能快速响应输入变化,实现精准控制。 2. **输入/输出能力**:PLC的I/O点数决定了它可以连接的传感器和执行器数量,不同的PLC型号具有不同数量...
**CMMI(Capability Maturity Model Integration)**,即能力成熟度模型集成,是一种用于评估组织在软件开发、系统工程、服务提供等过程改进领域的框架。CMMI由美国卡内基梅隆大学的软件工程研究所(SEI)开发,旨在...
1. MFC基础 MFC由一系列的类组成,这些类代表了Windows操作系统中的各种对象,如窗口、菜单、对话框、控件等。MFC的设计遵循了面向对象的原则,使得开发者可以通过继承、封装和多态性来构建应用。例如,CWnd类是...
【初识Visual Basic .NET】 Visual Basic .NET(VB.NET)是Microsoft公司在.NET Framework框架下推出的一种面向对象的编程语言,它继承了Visual Basic的传统语法,并融入了现代编程语言的特点,使得开发者能够更高效...
### 项目二 初识物联网—任务1:掌握物联网的基本概念 #### 一、引言 随着科技的进步,物联网(Internet of Things, IoT)已成为推动信息产业发展的重要力量。本章节通过对一个具体案例——智能定位手表的介绍,...
,该游戏在PDP-1小型机上运行,受到了广泛欢迎。到了1971年,第一款街机游戏Computer Space问世,电子游戏逐渐普及。1972年,Atari公司的成立对游戏行业产生了深远影响,不仅推动了游戏行业的繁荣,也为后来的个人...
介绍了敏捷开发模式的发展阶段,通过实际案例,分享敏捷开发的框架,精神及原则。
以下是对"初识Python"这一主题的详细讲解: 1. **启动与简单的计算**: Python可以通过交互式界面运行,比如IDLE。在这个环境中,你可以直接输入代码并立即看到结果。例如,输入`print("hello world!")`会打印出...