tl  tr
  Home | Tutorials | Articles | Videos | Products | Tools | Search
Interviews | Open Source | Tag Cloud | Follow Us | Bookmark | Contact   
 Tools and Libs > Jodd > Beans > Bean Template Macro Resolver

Bean Template Macro Resolver 

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 use BeanTemplateMacroResolver class.

File Name  :  
com/bethecoder/tutorials/jodd/common/ContainerBean.java 
   
package com.bethecoder.tutorials.jodd.common;

import java.util.Date;

public class ContainerBean {

  private Student student;
  private Date parsedOn = new Date();

  public Student getStudent() {
    return student;
  }

  public void setStudent(Student student) {
    this.student = student;
  }
  
  public Date getParsedOn() {
    return parsedOn;
  }

  public void setParsedOn(Date parsedOn) {
    this.parsedOn = parsedOn;
  }
}
   

File Name  :  
com/bethecoder/tutorials/jodd/common/Student.java 
   
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 + "]";
  }
}
   

File Name  :  
com/bethecoder/tutorials/jodd/beans/BeanTemplateParserTest2.java 
Author  :  Sudhakar KV
Email  :  [email protected]
   
package com.bethecoder.tutorials.jodd.beans;

import jodd.bean.BeanTemplateMacroResolver;
import jodd.bean.BeanTemplateParser;

public class BeanTemplateParserTest2 {

  /**
   @param args
   */
  public static void main(String[] args) {
    // prepare template string
    String template = "${student.name} is a good student. He likes to play ${student.hobby}." 
          "\nTemplate parsed on : ${parsedOn}";
     
    // merge template and bean context
    BeanTemplateParser templateParser = new BeanTemplateParser();
    String result = templateParser.parse(template, new BeanTemplateMacroResolver() {

      @Override
      public Object resolve(String name) {
        if ("student.name".equals(name)) {
          return "Sriram";
        else if ("student.hobby".equals(name)) {
          return "Chess";
        }
        
        return name.toUpperCase() " - NOT FOUND !!";
      }
      
    });
    
    System.out.println(result);
    
  }

}
   

It gives the following output,
Sriram is a good student. He likes to play Chess.
Template parsed on : PARSEDON - NOT FOUND !!



 
  


  
bl  br