编写自己的控件

先写一个MailInfoPanel.html.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<wicket:panel>
    <span wicket:id="receivedMail">收到的邮件数量</span>
    <br/>
    <span wicket:id="deletedMail">删除的邮件数量</span>
    <br/>
    <span wicket:id="innerMail">总的数量</span>
</wicket:panel>
</html>

 

接着编写MailInfoPanel.java

 

package net.kentop.wicket;

import java.text.MessageFormat;

import org.apache.wicket.AttributeModifier;
import org.apache.wicket.behavior.IBehavior;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.Model;

public class MailInfoPanel extends Panel {

    private Label receivedMailLabel;
    private Label deletedMailLabel;
    private Label innerMailLabel;
   
    public MailInfoPanel(String id) {
        super(id);
       
        receivedMailLabel = new Label("receivedMail","");
        deletedMailLabel = new Label("deletedMail","");
        innerMailLabel = new Label("innerMail","");
       
        this.add(receivedMailLabel);
        this.add(deletedMailLabel);
        this.add(innerMailLabel);
    }
   
    protected void onBeforeRender() {
       
        Object[] objs = new Object[]{new Integer(11),new Integer(22),new Integer(33)};
       
        receivedMailLabel.setModelObject(MessageFormat.format("收到的邮件数量为{0}件", objs));
        deletedMailLabel.setModelObject(MessageFormat.format("删除的邮件数量为{1}件", objs));
        innerMailLabel.setModelObject(MessageFormat.format("总的数量是{2}件", objs));
       
        // TODO Auto-generated method stub
        super.onBeforeRender();
    }

   
   
}

 

 

注意红色部分为重写Panel的onBeforeRender方法.在载入MailInfoPanel之前初始化的代码,也就是说,程序会先执行这里的 onBeforeRender()方法,以初始化这里的值.

 

 

这样一个自定义的控件就已经定义好了.

就可以在页面中像使用Label 控件那样使用这个控件了.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值