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 初中信息技术-初识Python-课件全文共16页,当前为第1页。 学习目标 1.初步了解Python编程环境,了解print()函数 2.了解算法的概念和特征;理解算法在生活、学习中的重要意义。' 3.了解Python语言中常用...
初识rosetta-workshop课件1-introduction(英文版)
第1章-初识Visual-Basic-NETppt课件(全).ppt
初识计算机-PPT.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
初中信息技术-初识python-课件.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
01初识Scratch-游来游去的小鱼
让不懂编程的人爱上Unity3d游戏开发007-初识神兵-Unity3d的前世今生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的使用...
对于刚刚了解oracle的同学会有所帮助,从安装到卸载以及一些简单的数据库管理、sql语句操作、plsql编程。
介绍了敏捷开发模式的发展阶段,通过实际案例,分享敏捷开发的框架,精神及原则。
初识PLC——PLC发展共41页.pdf.zip
初识PLC——PLC性能共28页.pdf.zip
初识PLC——PLC工作原理共9页.pdf.zip
第2讲-初识计算思维-由小白鼠到计算思维.pptx
VB-关于CS VB-关于CS VB-关于CS VB-关于CS VB-关于CS VB-关于CS
初识PLC——认识FXN系列PLC共8页.pdf.zip