`
咸蛋超人
  • 浏览: 3216 次
  • 性别: Icon_minigender_1
  • 来自: 海南海口
社区版块
存档分类
最新评论

自定义Select标签(支持自定义事件)

阅读更多

[请支持原创]

 

因为之前一直在使用Struts发现老是感觉有点别扭,所以参考了.net下面的控件事件,然后希望能通过自己封装的一套自定义标签来减少开发工作量(PS:毕竟本人希望多腾出点时间疼下老婆,打下dota。亲,你们懂的)
     废话少说,下面是我在页面调用select控件的方法
    
    
     name: 这里表示生成<select>标签的ID和Name
     bind: 这里表示在显示生成<select>标签时,会触发的方法

     下面是我要调用的selectStudent方法:

    
 @SelectBind(text="name", value="index", defaultValue="2")
	public ArrayList<Child> selectStudent(ServletRequestInfo req){
		Child child = new Child();
		child.setIndex(1);
		child.setName("test");
		Child child1 = new Child();
		child1.setIndex(2);
		child1.setName("test2");
		Child child2 = new Child();
		child2.setIndex(0);
		child2.setName("test3");
		
		ArrayList<Child> list = new ArrayList<Child>();
		list.add(child);
		list.add(child1);
		list.add(child2);
		
		return list;
	}

 @SelectBind(text="name", value="userID", defaultValue="4")
	public ArrayList<User> selectUser(ServletRequestInfo req){
		User user = new User();
		user.setName("kevin");
		user.setUserID(3);
		User user1 = new User();
		user1.setName("alex");
		user1.setUserID(4);
		User user2 = new User();
		user2.setName("Darin");
		user2.setUserID(1);
		
		ArrayList<User> list = new ArrayList<User>();
		list.add(user);
		list.add(user1);
		list.add(user2);
		
		return list;
	}




   重点在于这个名为SelectBind的Annotation。它主要负责的是,根据返回的对象类型和是设置对应的字段的get方法放置到对应的text和value值中去。
   text存放的是返回对象的某个字段名,对应的是生成<select>标记下的文本值;
   value存放的,同样是返回对象的某个字段名,对应的是生成<select>标记下的对应值;

 

   如果想要绑定其它值,直接改成你想绑定的方法就行了,例如上面的selectUser方法

   图1为绑定selectStudent的展示, 图2为绑定selectUser

   效果图如下:  

                 

 

 

   整理下,会发个demo上来,欢迎各种丢砖.......

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics