Archive for February, 2013

แก้ไข Richfaces 4.3.0 ให้รองรับปี พ.ศ

แก้ไข Richfaces 4.3.0 ให้รองรับปี พ.ศ
สืบเนื่องจากระบบที่พัฒนามาต้องการให้แสดง ปฏิทินใน Rcihfaces เป็นภาษาไทย จากประสบการณ์ที่ผ่านมาใน Version 3.3.3 Final นั้นจำเป็นต้องไปแก้ไขไฟล์ calendar.js ซึ่งก็สามารถใช้งานได้ดี แต่พอมา Version นี้ก็ไม่แตกต่างกันครับ
คือ ต้องแก้อยู่ดี เพราะปฏิทินนั้น แสดงชื่อเดือน อะไรถูกต้องครับ ยกเว้นพวก ปี วันที่ปัจจุบัน เพราะ เวลากำหนด locale เป็น th_TH แล้ว ตัว ปฏิทินจะสร้าง JavaScript ในหน้าจอดังนี้

<script type="text/javascript">
	RichFaces.ui.Calendar.addLocale("th_TH",
		{"monthLabels":["มกราคม","กุมภาพันธ์","มีนาคม"......"ธันวาคม"]
		,"minDaysInFirstWeek":1
		,"monthLabelsShort":["..ชื่อเดือน .."]
		,"firstWeekDay":0
		,"weekDayLabels":["ชื่อสัปดาห์"]
		,"weekDayLabelsShort":["ชื่อสัปดาห์"] 
		} 
	);

	new RichFaces.ui.Calendar("startDate","th_TH",{
	datePattern":"dd\/MM\/yyyy"
	,"currentDate":new Date(2556,1,26)
	,"style":"z\u002Dindex: 3"
	} 
).load();
</script>

พอส่ง currentDate เป็น พ.ศ ตามที่ Java เข้าใจไปให้ JavaScript ที่นี้ก็ลำบากเลยครับ เวลาเปิดหน้าจอครั้งแรกไม่มีปัญหาอะไรครับ แต่ถ้าคลิกไป คลิกมา ตัวปฏิทินจะแสดงผลเพี้ยนจาก 2556 ไปเป็น 769 บ้าง ตามสถานะการณ์ เนื่องจาก Java พยายามแปลงไปเป็นปีไทย แต่ JavaScript ไม่รู้จัก
หลังจากประสบปัญหานี้ จึงลองไปค้นหาข้อมูลดู ซึ่งไม่เจอใครแก้ปัญหาไว้เลย เลยต้องมางมเอง จากประาบการณ์ ใน Version 3.3.3 Final คิดว่าจะง่าย แต่ ….. ขอโทษที Version 4.3.0 Final พี่แกเปลี่ยน Code อีกแล้วครับ ออกไปเขียนแนว Jquery plugin ต้องงมอีกพอสมควร
เสียเวลามาเกือบทั้งวัด สุดท้ายก็แก้ไขเสร็จเรียบร้อย เลยมาเขียนไว้สักหน่อย การแก้ไขทำตามนี้เลย
Read more