สมัครเรียนโทร. 085-350-7540 , 084-88-00-255 , ntprintf@gmail.com


Spring MVC - การรับค่าพารามิเตอร์จาก URL ด้วย @RequestParam

 

ในยุคปัจจุบันการพัฒนาเว็บแอปพลิเคชันนั้นเป็นงานที่มีความซับซ้อนและต้องการเครื่องมือที่มีประสิทธิภาพในการจัดการ Spring Framework เป็นหนึ่งในเฟรมเวิร์คที่ได้รับความนิยมอย่างยิ่งในวงการ Java Developer ด้วยความสามารถในการช่วยจัดการงานที่ยุ่งยากออกไป ทำให้การพัฒนาแอปพลิเคชันเป็นไปได้อย่างราบรื่นและมีประสิทธิภาพ

ในบทความนี้ เราจะพูดถึงหนึ่งในความสามารถของ Spring MVC ที่จะช่วยให้การรับพารามิเตอร์จาก URL เป็นเรื่องง่ายขึ้น นั่นคือ การใช้ @RequestParam เดี่ยวจะพาไปดูกันว่ามันคืออะไร มันทำงานยังไง และเราจะใช้งานมันในโปรเจ็กต์ของเราอย่างไร

 

@RequestParam คืออะไร?

ใน Spring MVC, @RequestParam เป็นแอนโนเตชัน (annotation) ที่ใช้สำหรับการอ่านค่าพารามิเตอร์จาก URL โดยที่ Spring จะทำการแยกและแปลงค่าจาก URL query ลงสู่เมธอดของคอนโทรลเลอร์โดยอัตโนมัติ สิ่งนี้ทำให้การพัฒนาด้าน backend มีความสะดวกมากยิ่งขึ้น เพราะเราไม่จำเป็นต้องเขียนโค้ดซับซ้อนเพื่อดึงค่าจาก URL query เอง

 

วิธีการใช้งาน @RequestParam

การใช้งาน @RequestParam เริ่มต้นจากการประกาศแอนโนเตชันนี้ที่พารามิเตอร์ของเมธอดในคอนโทรลเลอร์ ต่อไปนี้เป็นตัวอย่างของการใช้งานที่ง่าย ๆ:


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.ui.Model;

@Controller
public class GreetingController {

    @GetMapping("/greeting")
    public String greeting(@RequestParam(name = "name", required = false, defaultValue = "World") String name, Model model) {
        model.addAttribute("name", name);
        return "greeting"; // ส่งผลไปยัง template ชื่อ greeting
    }
}

- @GetMapping("/greeting"): วิธีนี้จะทำงานเมื่อมีการร้องขอ URL `/greeting` - @RequestParam: ใช้เพื่อรับพารามิเตอร์ `name` จาก URL หากไม่มีการระบุชื่อนี้ใน URL ระบบจะใช้งานค่าเริ่มต้นเป็น "World" - Model: ใช้สำหรับการส่งข้อมูลไปยัง view

เมื่อมีการเรียก URL เช่น `http://localhost:8080/greeting?name=John` ค่าของตัวแปร `name` จะถูกตั้งค่าเป็น "John" และจะถูกส่งไปยัง view ที่ชื่อ `greeting`

 

การใช้ @RequestParam กับพารามิเตอร์หลายค่า

นอกจากการรับพารามิเตอร์เดียวแล้ว @RequestParam ยังสามารถรับพารามิเตอร์หลายค่าได้โดยใช้รูปแบบของ List ในตัวอย่างต่อไปนี้ เราจะดูวิธีการรับค่าหลายค่าจาก URL:


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.ui.Model;
import java.util.List;

@Controller
public class MultiValueController {

    @GetMapping("/processIds")
    public String processIds(@RequestParam List<Integer> ids, Model model) {
        // ใช้ List IDs ได้แล้ว สามารถนำไปใช้งานตามความต้องการ
        model.addAttribute("ids", ids);
        return "idsList"; // ส่งผลไปยัง template ชื่อ idsList
    }
}

โดย URL อาจมีรูปแบบเช่น `http://localhost:8080/processIds?ids=1&ids=2&ids=3` และ @RequestParam จะทำการรวบรวมค่าทั้งหมดลงใน List automatically.

 

ข้อดีและข้อควรระวังในการใช้ @RequestParam

ข้อดี

- ลดความซับซ้อน: ช่วยลดปริมาณโค้ดในการดึงค่าจาก URL query อย่างมีประสิทธิภาพ - ความยืดหยุ่น: กำหนดค่าเริ่มต้นและตรวจสอบค่าที่ไม่จำเป็นต้องใส่ได้อย่างง่ายดาย

ข้อควรระวัง

- Compatibility: ต้องระวังการแปลงประเภทเนื่องจากการรับค่าจาก URL จะเป็น String ทั้งหมด และจะมีการแปลงประเภทตามที่กำหนด ถ้าค่าที่ส่งมาไม่ตรงกับประเภทที่รับ อาจเกิดข้อผิดพลาด - Optional Parameters: การใช้พารามิเตอร์ที่ไม่จำเป็นต้องใส่ต้องระวังเรื่องการตั้งค่า default อย่างรอบคอบเพื่อป้องกันข้อผิดพลาด

@RequestParam ถือว่าเป็นเครื่องมือสำคัญที่ช่วยให้การจัดการกับค่าพารามิเตอร์จาก URL นั้นสะดวกและเข้าใจง่ายมากขึ้น ในกรณีที่คุณต้องการเพิ่มประสิทธิภาพของคอนโทรลเลอร์ @RequestParam เป็นคำตอบที่สมบูรณ์แบบในการพัฒนาเว็บแอปพลิเคชันที่มีประสิทธิภาพ

ในโลกของการพัฒนาโปรแกรม การรู้จักใช้เครื่องมือที่มีอยู่อย่างชำนาญย่อมเพิ่มความสามารถและลดเวลาในการเขียนโปรแกรมได้มากยิ่งขึ้น และการศึกษาเพิ่มเติมในด้านนี้ย่อมเป็นประโยชน์ต่อ Developer ทุกคน

ถ้าบทความนี้กระตุ้นความสนใจของคุณเกี่ยวกับ Spring MVC และการพัฒนา Java-based web application หรือถ้าคุณต้องการเจาะลึกความรู้ด้านโปรแกรมมิ่งเพิ่มเติม ลองเข้าร่วมลงเรียนที่ Expert-Programming-Tutor (EPT) ซึ่งเรามีวิธีการสอนที่หลากหลายและเหมาะสำหรับทุกระดับการเรียนรู้ของคุณ!

 

 

หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง

หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/


Tag ที่น่าสนใจ: java c# vb.net python c c++ machine_learning web database oop cloud aws ios android


บทความนี้อาจจะมีที่ผิด กรุณาตรวจสอบก่อนใช้

หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor

ไม่อยากอ่าน Tutorial อยากมาเรียนเลยทำอย่างไร?

สมัครเรียน ONLINE ได้ทันทีที่ https://elearn.expert-programming-tutor.com

หรือติดต่อ

085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM

แผนที่ ที่ตั้งของอาคารของเรา

แผนผังการเรียนเขียนโปรแกรม

Link อื่นๆ

Allow sites to save and read cookie data.
Cookies are small pieces of data created by sites you visit. They make your online experience easier by saving browsing information. We use cookies to improve your experience on our website. By browsing this website, you agree to our use of cookies.

Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com

ติดต่อเราได้ที่

085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
แผนที่ ที่ตั้งของอาคารของเรา