รู้จักกับ Expression Language (EL) for JSP

Expression Language หรือ EL นั่นเป็นภาษาที่ช่วยในการเข้าถึง Property ของ Java Object ผ่าน Tag Library ใน JSP นอกจากนี้ EL ยังมี Function ที่มีประโยชน์อีกหลายตัวด้วยกัน EL สามารถใช้ดึงค่าจาก scope ต่างๆได้ โดยเมื่อเปรียบเทียบกับ java จะได้ดังนี้

Expression Language Java (Scriptlet with implicit objects)
${applicationScope.test} application.getAttribute(“test”};
${sessionScope.test} session.getAttribute(“test”);
${requestScope.test} request.getAttribute(“test”);;
${pageScope.test} pageContext.getAttribute(“test”};
${test} pageContext.findAttribute(“test”);
${param.test} request.getParameter(“test”)


ถึงแม้ว่าจะมีการเปรียบเทียบให้เห็นอย่างนี้ว่าทั้ง 2 อย่างอาจใช้แทนกันได้ แต่ในความเป็นจริงแล้ว EL จะเป็นที่ยอมรับมากกว่า และบาง taglib ก็จะบังคับว่าต้องใช้ EL เท่านั้นครับ

มาดูระดับ(Scope) แต่ละอย่างกันนะครับว่าแต่ละอันเป็นยังไง โดยที่ผมยกมานี้เป็นตัวที่คิดว่ามีให้เห็นบ่อยๆ แต่ไม่ได้หมายความว่าอันอื่นไม่ได้ใช้นะครับ ซึ่งเราก็ควรจะเลือกใช้ให้เหมาะสมครับ (พยายามอย่าใช้ระดับใหญ่ๆ เพราะ lifetime มันจะนานกว่า ทำให้เปลือง memory ครับ)

Application หรือก็คือ ServletContext ซึ่งเป็นระดับสูงสุด การอ้างถึง attribute ตัวหนึ่งก็จะเป็นตัวเดียวกันทั้งโปรแกรม โดยทุกเครื