wicket基础应用(2)--wicket表单控件的使用

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

1、Label控件

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

html代码:

Html代码
  1. < span   wicket:id = "toDo" > </ span >   
<span wicket:id="toDo"></span>



java代码:

Java代码
  1. Label toDoLabel =  new  Label( "toDo"new  Model());  
Label toDoLabel = new Label("toDo", new Model());



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

Java代码
  1. toDoLabel.getDefaultModelObject();  
toDoLabel.getDefaultModelObject();



或者也可以这样

Java代码
  1. Model toDoModel =  new  Model();  
  2. Label toDoLabel = new  Label( "toDo" , toDoModel);  
  3.   
  4. Object obj = toDoModel.getObject();  
Model toDoModel = new Model();
Label toDoLabel = new Label("toDo", toDoModel);

Object obj = toDoModel.getObject();



2、TextField控件:

html代码:

Html代码
  1. < input   type = "text"    wicket:id = "entName"   />   
<input type="text"  wicket:id="entName" />



java代码:

Java代码
  1. Model entNameModel =  new  Model();  
  2. TextField entNameText = new  TextField( "entName" , entNameModel);  
Model entNameModel = new Model();
TextField entNameText = new TextField("entName", entNameModel);



控件值的获取方式同上。

3、TextArea控件:

html代码:

Html代码
  1. < textarea   cols = "50"   rows = "5"   wicket:id = "linkAddress" > </ textarea >   
<textarea cols="50" rows="5" wicket:id="linkAddress"></textarea>



java代码:

Java代码
  1. Model linkAddressModel =  new  Model();  
  2. TextArea linkAddressArea = new  TextArea( "linkAddress" , linkAddressModel);  
Model linkAddressModel = new Model();
TextArea linkAddressArea = new TextArea("linkAddress", linkAddressModel);



4、下拉框控件:

html代码:

Html代码
  1. < select   wicket:id = "status" >   </ select >   
<select wicket:id="status"> </select>



java代码:

Java代码
  1. List<Integer> statusList = Arrays.asList( new  Integer[] {  12  });  
  2. final  HashMap<Integer, String> statusMap =  new  HashMap<Integer, String>();  
  3. statusMap.put(new  Integer( 1 ),  "有效" );  
  4. statusMap.put(new  Integer( 2 ),  "暂停" );  
  5. IChoiceRenderer statusRenderer = new  ChoiceRenderer() {  
  6.     @Override   
  7.     public  Object getDisplayValue(Object object) {  
  8.         return  statusMap.get(object);  
  9.     }  
  10. };  
  11. DropDownChoice statusChoice = new  DropDownChoice( "status" , statusModel, statusList, statusRenderer);  
		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的时候,可以这样做:

Java代码
  1. DropDownChoice statusChoice =  new  DropDownChoice( "status" , statusModel, statusList, statusRenderer){  
  2.     @Override   
  3.     public  String getDefaultValue() {  
  4.     return   null ;  
  5.     }  
  6. };  
DropDownChoice statusChoice = new DropDownChoice("status", statusModel, statusList, statusRenderer){
    @Override
    public String getDefaultValue() {
    return null;
    }
};



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

Java代码
  1. /**  
  2.  * 根据传入的参数得到一个下拉框  
  3.  *   
  4.  * @param id  
  5.  * @param model  
  6.  * @param list  
  7.  * @param renderer  
  8.  * @param choice  
  9.  *            默认值,比如下拉框的第一个值为"请选择"  
  10.  * @return  
  11.  */   
  12. private  DropDownChoice getDownChoice(String id, Model model, List list, IChoiceRenderer renderer,  final  String choice) {  
  13.     return   new  DropDownChoice(id, model, list, renderer) {  
  14.         @Override   
  15.         protected  CharSequence getDefaultChoice(Object arg0) {  
  16.             if  (choice !=  null ) {  
  17.                 return   new  AppendingStringBuffer( "/n<option selected=/"selected/" value=/"/">" ).append(choice).append( "</option>" );  
  18.             } else   
  19.                 return   null ;  
  20.         }  
  21.     };  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值