|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
到时我们不用学struts,不用学spring,不用学Hibernate,只要能把jsf学会了,完全可以替代所有的框架,包括AJAX,都知道AJAX并不是新技术,虽说我没深入学习jsf但我认为jsf应该已经能通过其它技术替代AJAX,实现无缝刷新。
Java供应java.beans.Introspector类,匡助我们剖析JavaBean类傍边有哪些属性,经由过程它能够便利的对JavaBean对象属性举行取值和赋值操纵。下面是一个例子,依据Map对象中的内容创立JavaBean对象。- 01.importjava.beans.BeanInfo;
- 02.importjava.beans.IntrospectionException;
- 03.importjava.beans.Introspector;
- 04.importjava.beans.PropertyDescriptor;
- 05.importjava.util.HashMap;
- 06.importjava.util.Map;
- 07.importjava.lang.reflect.InvocationTargetException;
- 08.
- 09.publicclassMapToBean{
- 10.
- 11.publicstaticvoidmain(String[]args)throwsException{
- 12.Map<Object,Object>map=newHashMap<Object,
- Object>();
- 13.map.put("name","张三");
- 14.map.put("age",30);
- 15.Personp=convertMap(Person.class,map);
- 16.System.out.println(p.getName()+","+p.getAge
- ());
- 17.}
- 18.
- 19./**
- 20.*将一个Map对象转化为一个JavaBean
- 21.*
- 22.*@paramtype要转化的范例
- 23.*@parammap包括属性值的map
- 24.*
- 25.*@return转化出来的JavaBean对象
- 26.*
- 27.*@throwsIntrospectionException假如剖析类属性失利
- 28.*@throwsIllegalAccessException假如实例化JavaBean失利
- 29.*@throwsInstantiationException假如实例化JavaBean失利
- 30.*@throwsInvocationTargetException假如挪用属性的setter办法
- 失利
- 31.*/
- 32.privatestatic<T>TconvertMap(Class<T>type,
- Map<Object,Object>map)
- 33.throwsIntrospectionException,IllegalAccessException,
- 34.InstantiationException,InvocationTargetException{
- 35.BeanInfobeanInfo=Introspector.getBeanInfo(type);//猎取
- 类属性
- 36.Tt=type.newInstance();//创立JavaBean对象
- 37.
- 38.//给JavaBean对象的属性赋值
- 39.for(PropertyDescriptordescriptor:
- beanInfo.getPropertyDescriptors()){
- 40.StringpropertyName=descriptor.getName();
- 41.if(map.containsKey(propertyName)){
- 42.//上面一句能够try起来,如许当一个属性赋值失利的
- 时分就不会影响其他属性赋值。
- 43.descriptor.getWriteMethod().invoke(t,map.get
- (propertyName));
- 44.}
- 45.}
- 46.returnt;
- 47.}
- 48.}
- 49.
- 50.classPerson{
- 51.
- 52.privateStringname;
- 53.
- 54.privateintage;
- 55.
- 56.publicStringgetName(){
- 57.returnname;
- 58.}
- 59.
- 60.publicvoidsetName(Stringname){
- 61.this.name=name;
- 62.}
- 63.
- 64.publicintgetAge(){
- 65.returnage;
- 66.}
- 67.
- 68.publicvoidsetAge(intage){
- 69.this.age=age;
- 70.}
- 71.}
复制代码 进而能拉拢大多数程序员用windows产品。并且从ASP.NETAJAX可以跨平台这一点上,间接证明了我们的推断,至少证明了微软做过这方面的研究。所以如果哪一天突然听说了.net可以跨平台了,那么请不要吃惊,如果这一天真的到来,java就到了真正和.net决战的时刻。因为不到万不得以的时候微软是不会推出跨平台的.net的,如果跨平台的.net还不足以对抗java的话,那么微软还剩的手段就是开源了,呵呵。 |
|