该文可以转载,但转载必须注明作者,出处: 
作者:lhx1026

出处:http://lhx1026.iteye.com/

这一章介绍wicket表单控件的简单应用

1、Label控件

这个应该说是最常用的控件了

html代码:

<span wicket:id="toDo"></span>

java代码:

Label toDoLabel = new Label("toDo", new Model());

其中,Label这个控件有几个构造函数,后面的参数可以是String,也可以是Model。Model是用来存放这个控件的值的。如果不需要获取这个控件的值,只是需要给这个控件赋值的话,可以用String。如果需要获取这个控件的值,可以通过以下语句获取:

toDoLabel.getDefaultModelObject();

或者也可以这样

Model toDoModel = new Model();
Label toDoLabel = new Label("toDo", toDoModel); Object obj = toDoModel.getObject();

2、TextField控件:

html代码:

<input type="text"  wicket:id="entName" />

java代码:

Model entNameModel = new Model();
TextField entNameText = new TextField("entName", entNameModel);

控件值的获取方式同上。

3、TextArea控件:

html代码:

<textarea cols="50" rows="5" wicket:id="linkAddress"></textarea>

java代码:

Model linkAddressModel = new Model();
TextArea linkAddressArea = new TextArea("linkAddress", linkAddressModel);

4、下拉框控件:

html代码:

<select wicket:id="status"> </select>

java代码:

        List<Integer> statusList = Arrays.asList(new Integer[] { 1, 2 });
final HashMap<Integer, String> statusMap = new HashMap<Integer, String>();
statusMap.put(new Integer(1), "有效");
statusMap.put(new Integer(2), "暂停");
IChoiceRenderer statusRenderer = new ChoiceRenderer() {
@Override
public Object getDisplayValue(Object object) {
return statusMap.get(object);
}
};
DropDownChoice statusChoice = new DropDownChoice("status", statusModel, statusList, statusRenderer);

其中,IChoiceRenderer的母的是为了将在字面上面显示的字符串跟stausMap中的值对应起来。这样的代码实例化的时候,下拉框会出现一个默认的选项:"请选择"。如果不想出现这个选项,在实例化DropDownChoice的时候,可以这样做:

DropDownChoice statusChoice = new DropDownChoice("status", statusModel, statusList, statusRenderer){
@Override
public String getDefaultValue() {
return null;
}
};

或者不想出现“请选择”,而是“全部”,可以这样写一个方法:

    /**
* 根据传入的参数得到一个下拉框
*
* @param id
* @param model
* @param list
* @param renderer
* @param choice
* 默认值,比如下拉框的第一个值为"请选择"
* @return
*/
private DropDownChoice getDownChoice(String id, Model model, List list, IChoiceRenderer renderer, final String choice) {
return new DropDownChoice(id, model, list, renderer) {
@Override
protected CharSequence getDefaultChoice(Object arg0) {
if (choice != null) {
return new AppendingStringBuffer("\n<option selected=\"selected\" value=\"\">").append(choice).append("</option>");
} else
return null;
}
};
}

5、按钮

 <input type="submit"  wicket:id="addSpNum" value="保存"  />
Button addSpNumButton = new Button("addSpNum"){
@Override
public void onSubmit() {
System.out.println("这里时点击按钮时触发的事件!");
}
};

如果这个按钮是在表单中,则点击这个按钮会先触发表单的onSubmit()事件,然后再触发按钮本身的onSubmit()事件。如果不想触发表单的onSubmit()事件,则可以用下面的语句:

addSpNumButton.setDefaultFormProcessing(false);

6、链接

<a wicket:id="more">more</a>

普通链接

Link moreLink = new Link("more") {

            @Override
public void onClick() {
System.out.println("这里是点击链接触发的事件");
} };

Ajax链接

        AjaxLink moreLink = new AjaxLink("more") {

            @Override
public void onClick(AjaxRequestTarget target) {
morePanel.setVisible(true);
target.addComponent(morePanel2);
} };

注意:这里如果是Ajax链接,那么如果要点击这个链接使其他的控件发生变化的时候,target.addComponent(...)这个方法里面要添加的控件,必须是你要改变的控件的父控件。

呵呵,这些最常用的控件就介绍到这里了,这些控件还有其他的使用方法,以后熟悉的话就知道了。

wicket基础应用(2)--wicket表单控件的使用的更多相关文章

  1. vue.js基础知识篇(3):计算属性、表单控件绑定

    第四章:计算属性 为了避免过多的逻辑造成模板的臃肿不堪,可使用计算属性来简化逻辑. 1.什么是计算属性 <!DOCTYPE html><html lang="en" ...

  2. Vue.js学习 Item9 – 表单控件绑定

    基础用法 可以用 v-model 指令在表单控件元素上创建双向数据绑定.根据控件类型它自动选取正确的方法更新元素.尽管有点神奇,v-model 不过是语法糖,在用户输入事件中更新数据,以及特别处理一些 ...

  3. Vue表单控件绑定

    前面的话 本文将详细介绍Vue表单控件绑定 基础用法 可以用 v-model 指令在表单控件元素上创建双向数据绑定.它会根据控件类型自动选取正确的方法来更新元素.v-model本质上不过是语法糖,它负 ...

  4. C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序

    C#中缓存的使用   缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可:  <%@ Outp ...

  5. 基于 el-form 封装一个依赖 json 动态渲染的表单控件

    nf-form 表单控件的功能 基于 el-form 封装了一个表单控件,包括表单的子控件. 既然要封装,那么就要完善一些,把能想到的功能都要实现出来,不想留遗憾. 毕竟UI库提供的功能都很强大了,不 ...

  6. “此网页上的某个 Web 部件或 Web 表单控件无法显示或导入。找不到该类型,或该类型未注册为安全类型。”

    自从vs装了Resharper,看见提示总是手贱的想去改掉它.于是乎手一抖,把一个 可视web部件的命名空间给改了. 喏,从LibrarySharePoint.WebPart.LibraryAddEd ...

  7. MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件

    类似于多层级的角色与权限控制功能,用MVC实现MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件.最近我们的项目中需要用到树型菜单,以前使用WebForm时,树型菜单有微软提供的 ...

  8. AnjularJS系列2 —— 表单控件功能相关指令

    第二篇,表单控件功能相关指令. ng-checked控制radio和checkbox的选中状态 ng-selected控制下拉框的选中状态 ng-disabled控制失效状态 ng-multiple控 ...

  9. 基于CkEditor实现.net在线开发之路(3)常用From表单控件介绍与说明

    上一章已经简单介绍了CKEditor控件可以编写C#代码,然后可以通过ajax去调用,但是要在网页上面编写所有C#后台逻辑,肯定痛苦死了,不说实现复杂的逻辑,就算实现一个简单增删改查,都会让人头痛欲裂 ...

随机推荐

  1. poj 2584 T-Shirt Gumbo (二分匹配)

    T-Shirt Gumbo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2571   Accepted: 1202 Des ...

  2. Remoting创建远程对象的一个实例:

    private static Lazy<IChannelManager>  channelManager=new Lazy<IChannelManager>(() =>  ...

  3. DIV半透明,内层不受影响的代码

    <div style=" background:rgba(0, 0, 0, 0.1)"><br /> <img src="http://im ...

  4. SMTP的相关命令

    SMTP是Simple Mail Transfer Protocol的简写. 邮件是日常工作.生活中不能缺少的一个工具,下面是邮件收发的流程. Image 邮件的发送,主要是通过SMTP协议来实现的. ...

  5. Thrift中实现按照时间戳范围操作Hbase数据

    在一次做项目的过程中,要实现一个功能,功能描述为前端给定日期范围,在该日期范围内取出指定行的信息.在Thrift常用的API中,取出一行所有的数据接口为getVer(),getver()具体描述如下: ...

  6. 【转】sudo命令情景分析

    文章转自:http://www.cnblogs.com/hazir/p/sudo_command.html Linux 下使用 sudo 命令,可以让普通用户也能执行一些或者全部的 root 命令.本 ...

  7. View的事件处理流程

    一直对view的事件处理流程迷迷糊糊,今天花了点时间写了个栗子把它弄明白了. 1.view的常用的事件分为:单击事件(onClick).长按事件(onLongClick).触摸事件(onTouch), ...

  8. 关于最近在做的一个js全屏轮播插件

    最近去面试了,对方要求我在一个星期内用原生的js代码写一个全屏轮播的插件,第一想法就是跟照片轮播很相似,只是照片轮播是有定义一个宽高度大小已经确定了的容器用来存储所有照片,然后将照片全部左浮动,利用m ...

  9. 超链接的#和javascript:void(0)的区别

    转载于:http://www.uw3c.com/cssviews/css12.html   在工作中,如果我们想把a标签中的链接置成空链接,我们一般会用两种方法: 1 <a href=" ...

  10. coocs2d-x资源压缩笔记

    使用 texturepacker 压缩: 如下设置,主要设置红框里面的,其他默认即可 上面设置的关键是 texture format 必须是 pvr.ccz,如果是png的话,下面的 img form ...