Siempre se utilizarán BeanUtils comunes
Beanutils utiliza la tecnología de reflexión mágica para lograr muchas funciones exageradas y útiles que eran inimaginables en la era C/C. No importa quién sea el proyecto que la use todos los días, en realidad me lo perdí en el último momento. Lo vi por primera vez
El captador y definidor dinámico de atributos En esta era de marcos en todas partes, no podemos garantizar que la función getter setter se ejecute para todo. A veces, los atributos deben obtenerse dinámicamente. según sus nombres, como De esta manera
BeanUtils getProperty(myBean code) La función más fuerte de Common BeanUtils es que puede acceder directamente a las propiedades de los objetos incrustados siempre que estén separados por puntos p>
BeanUtils getProperty(orderBean dirección ciudad) ; En comparación, los BeanUtils de otras bibliotecas de clases suelen ser muy simples y no pueden acceder a objetos incrustados, por lo que a veces deben reemplazarse con Commons BeanUtils que también admite atributos de tipo Lista y Mapa. Por ejemplo, se puede utilizar la siguiente sintaxis para obtener la lista de clientes de Order. El nombre del primer cliente
BeanUtils getProperty(orderBean customer[ ] name
Entre ellos). , BeanUtils utilizará la clase ConvertUtils para convertir la cadena en el tipo real del atributo Bean para mayor comodidad de HttpServletRequest, etc. Extraiga el bean del objeto o envíe el bean a la página, y PropertyUtils conservará el tipo original del bean. en su color original
Clasificación dinámica de BeanCompartor o establece dinámicamente el atributo por el cual se clasifica el bean mediante reflexión, sin la necesidad de implementar la interfaz de comparación del bean para juicios condicionales complejos
Lista. people =; // Lista de colecciones de objetos personales sort(peoples new BeanComparator(age));
Si desea admitir múltiples atributos de clasificación compuesta, como Ordenar por apellido, nombre
ArrayList sortFields = new ArrayList(); sortFields add(new BeanComparator(sortFields)); sortFields add(new BeanComparator( firstName )); ComparatorChain multiSort = new ComparatorChain(sortFields) ;Collections sort(filas multiSort); Entre ellos, ComparatorChain pertenece al paquete de colecciones jakata mons. Si el atributo de edad no es un tipo normal, el constructor debe pasar un objeto parator para ordenar la variable de edad. Además, el propio ComparebleComparator de BeanCompartor encuentra el atributo: If. nulo, se generará una excepción y no se puede establecer el orden ascendente o descendente. En este momento, debe utilizar ComparatorUtils del paquete de colecciones mons
Comparador mycmp = ComparableComp.
arator getInstance(); mycmp = ComparatorUtils nullLowComparator(mycmp);? // ¿Se permite nulo? mycmp = ComparatorUtils ReversedComparator(mycmp); // ¿Orden inverso? Comparador cmp = new BeanComparator(sortColumn mycmp); Atributos de ResultSet vinculados a objetos
A menudo es necesario tomar valores de objetos como request resultSet y asignarlos a beans. Si no se utiliza la función de enlace del marco MVC, todos se cansarán. escribiendo el siguiente código
String a = request getParameter( a ); bean setA(a); String b = bean setB(b); vincula automáticamente todas las propiedades:
MyBean bean = ; HashMap map = new HashMap(); nombres de enumeración = request getParameterNames() mientras (nombres hasMoreElements()) { Nombre de cadena = (Cadena) nombres nextElement(); ; map put(name request getParameterValues(name)); } BeanUtils populate(bean map);
Entre ellos, el método populate de BeanUtils o el método getProperty setProperty en realidad llamarán a convert para la conversión, pero solo al convertidor. admite algunos tipos básicos y ni siquiera admite el tipo de fecha de la utilidad Java, y es relativamente estúpido. Una cosa es que cuando encuentre un tipo desconocido, se generará una excepción. Para el tipo de fecha, implementé un convertidor haciendo referencia a su. escriba sqldate y agregue una función para establecer el formato de fecha. Para registrar este convertidor, necesita la siguiente declaración
ConvertUtilsBean convertUtils = new ConvertUtilsBean();? DateConverter dateConverter = new DateConverter();? dateConverter Date class); //Debido a que necesita registrar el convertidor, ya no puede usar los métodos estáticos de BeanUtils y debe crear una instancia de BeanUtilsBean BeanUtilsBean beanUtils = new BeanUtilsBean(convertUtils new PropertyUtilsBean()); value); Otras funciones ConstructorUtils crea objetos dinámicamente
Objeto estático público invokeConstructor(Class klass Object arg) MethodUtils llama dinámicamente a métodos
MethodUtils invokeMethod(bean métodoName parámetro); PropertyUtils Lee dinámicamente la colección cuando la propiedad es Mapa de colección: proporciona el índice
BeanUtils getIndexedProperty(orderBean items o
BeanUtils getIndexedProperty(orderBean items) [ ] ); Mapa: Proporcionar valor clave
BeanUtils getMappedProperty(orderBean items); //valor clave mercancías_no= o
BeanUtils getMappedProperty(orderBean items() ) PropertyUtils obtiene directamente las propiedades Tipo de clase lishixinzhi/Article/program/Java/Javascript/201311/25458