지난 2010/02/20 있었던, Adobe 후원 'Java개발자를 위한 공감' 세미나에서 발표한 자료와 데모 때 사용한 코드입니다.
그리고 발표내용은 Outsider님이 쓰신 자바 커뮤니티 공동 세미나 "자바 개발자를 위한 ‘共感(공감)’을 찾아서" #2 페이지에 잘 요약되어 있습니다. (잘 정리해 주셔서 감사합니다~)
* Spring Roo 1.0.2 (GA) Released : http://www.springsource.org/node/2399
자바지기 박재성님께서 Spring Batch의 메타데이터 테이블을 조회하고 Job을 수동실행 시킬 수 있는 관리프로그램을 개발하셨습니다. 즉, 배치작업들의 실행결과, 실행시각, 처리한 건수 등을 조회하고, 필요하다면 웹브라우저를 통해 Job을 실행할 수도 있는 것이죠.
Spring Batch Monitoring System 공개 및 요구사항 수렴
Spring Batch Monitoring System 개발자 인터뷰
앞으로 많은 분들에게 도움이 될 수 있는 프로젝트로 발전이 될 것이라 믿습니다.
StringTemplate template = null;
// setAttrubte로 값을 넣습니다.
template = new StringTemplate("안녕하세요. 저는 $name$입니다.");
template.setAttribute("name", "lee,jaeil");
System.out.println(template.toString());
StringTemplateGroup group = new StringTemplateGroup("mygroup", "특정폴더");
template = group.getInstanceOf("basic");
System.out.println(template.toString());
static class User {
private String name;
private int age;
private String job;
public User(String name, int age, String job) {
super();
this.name = name;
this.age = age;
this.job = job;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getJob() {
return job;
}
public String toString() {
return String.format("{name : %s, age : %s, job :%s}", name, age, job);
}
}
User me = new User("lee,jaeil", 19, "student");
template = new StringTemplate("안녕하세요. 저는 $user.name$이고 $user.age$살이고 $user.job$입니다.");
template.setAttribute("user", me);
System.out.println(template.toString());
template = new StringTemplate("$user$");
template.setAttribute("user", users);
System.out.println(template.toString());
// map도 지원합니다.
HashMap hm = new HashMap();
hm.put("name", "lee,jaeil");
hm.put("age", 19);
hm.put("job", "student");
template = new StringTemplate("안녕하세요. 저는 $user.name$이고 $user.age$살이고 $user.job$입니다.");
template.setAttribute("user", hm);
System.out.println(template.toString());
// Multi Values일 경우 이여 붙히지만, 구분자를 둘수 있습니다.
// Collection도 됩니다.
User[] users = new User[] {
new User("lee, jaeil", 19, "student")
, new User("seo,hyunju", 18, "student")
};
template = new StringTemplate("안녕하세요. $users; separator=\", \"$ 입니다.");
template.setAttribute("users", users);
System.out.println(template.toString());
// Group을 정하고 다른 Template을 include 합니다.
// Group을 정해야 다른 템플릿을 사용가능합니다.
StringTemplateGroup group = new StringTemplateGroup("mygroup", "/Users/jilee/Documents/workspace-sts-2.2.1.RELEASE/StringTemplateSample/sample");
template = group.getInstanceOf("basic");
System.out.println(template.toString());
안녕하세요. $bold(it="test")$ 입니다.
bold.st
<b>$it$</b>
// 템플릿 파일을 property에 : 로 접근하여 사용할수 있습니다.
template = new StringTemplate(group, "안녕하세요. 저는 $user.name:bold()$이고 $user.age$살이고 $user.job:bold()$입니다.");
template.setAttribute("user", me);
System.out.println(template.toString());
// 반복된값을 출력합니다.
// :{}를 사용합니다. :{ 와 | 사이의 이름으로 각각의 객체를 받습니다.
template = new StringTemplate("$users:{u | <ul><li>$u.name$, $u.age$, $u.job$</li></ul>}; separator=\"\n\"$");
template.setAttribute("users", users);
System.out.println(template.toString());
// 조건문을 사용
template = new StringTemplate("$if(users)$ $users:{u | <ul><li>$u$</li></ul>}; separator=\"\n\"$ $endif$");
//template.setAttribute("users", users);
System.out.println(template.toString());
//$를 쓰고 싶다면 \를 사용
template = new StringTemplate("\\$ $\\n$ $\\t$ $\\r$");
System.out.println(template.toString());
//주석도 사용할수 있음
template = new StringTemplate("$! this is a comment !$ ");
System.out.println(template.toString());
static class StringRender implements AttributeRenderer {
@Override
public String toString(Object o) {
return o.toString();
}
@Override
public String toString(Object o, String formatName) {
if("escape".equals(formatName)) {
String s = o.toString();
return s.replaceAll("<", "<").replaceAll(">", ">");
}
return toString(o);
}
}
static class DateRender implements AttributeRenderer {
@Override
public String toString(Object o) {
return o.toString();
}
@Override
public String toString(Object o, String formatName) {
if("simple".equals(formatName)) {
return new SimpleDateFormat("yyyy-MM-dd").format(o);
}
return toString(o);
}
}
// AttributeRenderer를 이용하여 포맷을 결정한다.
template = new StringTemplate("Today date is $currentTime; format=\"simple\"$ $html; format=\"escape\"$");
template.registerRenderer(String.class, new StringRender());
template.registerRenderer(Date.class, new DateRender());
template.setAttribute("currentTime", new Date());
template.setAttribute("html", "<a href=\"\">test</a>");
System.out.println(template.toString());
BasicUsage.java |

RapidWebDevelopmentWithSpringRoo_20102020.pdf
store.roo
Prev



Rss Feed