31 มีนาคม 2552

Font, Export PDF with Jasper Report

พยายามหาวิธีอยู่นานเลยครับ ในการแก้ปัญหา Font สำหรับการ Export PDF File ด้วย Jasper Report
ซึ่งเจ้า Jasper Report จะไปหา Font จาก OS ทำให้บางครั้งเรารัน Font บน Windows ได้แต่เอาไปรัน บน Linux ไม่ได้ จึงแก้ปัญหาโดยการส่ง font ไปให้ ตัว Exporter ก่อนที่มันจะทำการ Export PDF ดังนี้
HashMap fontMap = new HashMap();
FontKey key = new FontKey("Angsana New", false, false);
PdfFont font = new PdfFont("ANGSA.TTF", BaseFont.IDENTITY_H, true);
fontMap.put(key, font);

exporter.setParameter(JRExporterParameter.FONT_MAP, fontMap);
exporter.exportReport()


สำหรับ Parameter ต่างๆ ดูได้จาก FontKey และ PdfFont

ที่มา : narisa

30 มีนาคม 2552

Grails Problem, Don't use Number in Domain Name

เมื่อเรา domain name ที่มีตัวเลขรวมอยู่ด้วย จะทำให้ bind ไม่ได้ เช่น
domain name = Book4Store จะได้
table name = BOOK_4STORE
ซึ่ง grails จะ bind table นั้นกลับไม่ได้ วิธีแก้คือ

ไปตั้งชื่อ table ให้ domain นั้น

static mapping = {
table 'book_store'
}


**ทดสอบเฉพาะใน oracle นะครับ

27 มีนาคม 2552

Spring and Tiles

หลังจากที่ลองทำตาม step by step ของ Spring แล้วก็น่าจะเข้าใจการทำงานของ Spring ในระดับหนึ่ง แต่มันก็แค่เริ่มต้นนะครับ
คราวนี้ มาลองเอา Tiles มาแปะเข้าไปใน Spring ดูบ้าง
Tiles เป็นส่วนของการทำ Template โดยจะแยกออกเป็น 2 ส่วนคือ
1 tiles-def เป็นส่วนที่บอกว่า ถ้าเข้ามาที่ link นี้จะมีใช้ resource อะไรบ้าง เช่น ใช้ javascript file ใด, ใช้ template file ใด
2. template file ก็ตามชื่อนั้นแหละครับ

1./WEB-INF/tiles-def.xml

<tiles-definitions>
<definition name=".template" template="/WEB-INF/tiles/template_main2.jsp">
<put-attribute name="title" value="" />
<put-attribute name="script" value="" />
<put-attribute name="action" value="" />
<put-attribute name="content" value="" />
</definition>

<definition name="hello" extends=".template">
<put-attribute name="title" value="Home Pages" />
<put-attribute name="script" value="/WEB-INF/js/*.js" />
<put-attribute name="action" value="hello" />
<put-attribute name="content" value="/WEB-INF/jsp/hello.jsp" />
</definition>
<tiles-definitions>


2. /WEB-INF/tiles/template_main.jsp

<html>
<head>
<title>Spring App : <tiles:getAsString name="title" /></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
</head>
<body>
<h1> This from template</h1>
<tiles:insertAttribute name="content"/>
</body>
</html>

แค่นี้ หลังเรียก เรียกใช้ controller ที่ return ModelView เป็น hello ก็จะผ่าน Tiles และ แสดงผลตามที่เรา config เอาไว้ครับ


Starting JSP with Spring Framework

Spring Framework เป็น Framework ประกอบด้วยหลายส่วน โดยมีส่วนทีน่าจะได้ใช้งานบ่อยๆ เช่น

  • Spring MVC

  • Spring Security

  • Spring Web Flow

  • พูดถึง Spring MVC ก็เป็น Framework ตัวนึงที่เป็นไปตามลัก MVC ทั่วๆไป โดยมีการใช้ IOC (Inversion of Control) เพื่อสามารถใช้งาน Object โดยที่เราไม่ต้อง new Object เอง แต่จะไปทำในส่วนของการ config XML แทน ซึ่งมี config เยอะมาก (ซึ่งบางส่วนสามารถทำ Annotation แทนก็ได้)

    เริ่มลองกันเลยดีกว่า โดยไป download Spring จากที่นี่ version ล่าสุดตอนนี้คือ 2.5.6

    จากนั้นก็ทำตาม tutorial step-by-step ของทาง Spring เอง

    หรือถ้าใครถนัดใช้ netbeans ก็นี้เคยครับ

    Java Web Framework

    ไปรวมพวกบทความที่เค้า เปรียบเทียบ Java Web Framework แต่ละค่าย ส่วนใหญ่ก็จะเป็น Spring, Struts, JSF
    ลองเปรียบเทียบกันดูนะครับว่า เป็นอย่างไรบ้าง

    Spring vs JSF vs Struts จากค่าย Spring ( '_' )
    Comparing Java Web Framework

    แต่ตอนนี้กำลังทดลอง Spring อยู่ Config เยอะมาก แต่ ก็มีความสามารถเยอะดีนะ ไปเรียกส่วนเด่นๆ จากค่ายอื่น เอามา integrate ได้ด้วยทั้งเรื่อง Tile, JSF ลองอ่านกันดู