How to set bean property value by name
Jodd is an open-source java library with lot of reusable components and feature rich utilities.
This requires the library jodd-3.3.2.jar to be in classpath.
The following example shows how to set bean property value by property name
using BeanUtil.setProperty() API.
It throws jodd.bean.BeanException if the specified property is not found.
package com.bethecoder.tutorials.jodd.common;
public class Student implements java.io.Serializable {
private static final long serialVersionUID = - 5962595557796049374L ;
private String name;
private int age;
private String hobby;
public Student () {
}
public Student ( String name, int age, String hobby ) {
super () ;
this .name = name;
this .age = age;
this .hobby = hobby;
}
public String getName () {
return name;
}
public void setName ( String name ) {
this .name = name;
}
public int getAge () {
return age;
}
public void setAge ( int age ) {
this .age = age;
}
public String getHobby () {
return hobby;
}
public void setHobby ( String hobby ) {
this .hobby = hobby;
}
public String toString () {
return "Student[name = " + name + ", age = " + age + ", hobby = " + hobby + "]" ;
}
}
package com.bethecoder.tutorials.jodd.beans;
import jodd.bean.BeanUtil;
import com.bethecoder.tutorials.jodd.common.Student;
public class SetPropertyTest {
/**
* @param args
*/
public static void main ( String [] args ) {
Student std = new Student () ;
BeanUtil.setProperty ( std, "name" , "Sriram" ) ;
BeanUtil.setProperty ( std, "age" , 2 ) ;
BeanUtil.setProperty ( std, "hobby" , "Chess" ) ;
try {
BeanUtil.setProperty ( std, "unknown" , "xyz" ) ;
} catch ( jodd.bean.BeanException e ) {
System.out.println ( e ) ;
}
System.out.println ( std ) ;
}
}
It gives the following output,
jodd.bean.BeanException: Simple property not found:
unknown Invalid property: 'Student#unknown' (actual:'Student#unknown', forced=false)
Student[name = Sriram, age = 2, hobby = Chess]