ฉันสร้างเพจ Facelets ในเพจที่สร้างปุ่มบางปุ่มแบบไดนามิก แต่ละปุ่มจะมี ID เมื่อส่งเหตุการณ์ ฉันต้องการส่ง ID ของปุ่มไปยังการดำเนินการ (ปุ่มเป็นแบบไดนามิก)
แต่ฉันไม่รู้วิธีส่งพารามิเตอร์ไดนามิกใน JSF
ฉันสร้างเพจ Facelets ในเพจที่สร้างปุ่มบางปุ่มแบบไดนามิก แต่ละปุ่มจะมี ID เมื่อส่งเหตุการณ์ ฉันต้องการส่ง ID ของปุ่มไปยังการดำเนินการ (ปุ่มเป็นแบบไดนามิก)
แต่ฉันไม่รู้วิธีส่งพารามิเตอร์ไดนามิกใน JSF
คุณสามารถรับส่วนประกอบของปุ่มในวิธีดำเนินการได้โดย UIComponent#getCurrentComponent()
:
public void submit() {
UIComponent button = UIComponent.getCurrentComponent(FacesContext.getCurrentInstance());
String id = button.getId(); // or button.getClientId();
// ...
}
อีกทางหนึ่ง หากคุณกำหนดเป้าหมายไปที่คอนเทนเนอร์ Servlet 3.0 / EL 2.2 (Tomcat 7, Glassfish 3 ฯลฯ ) คุณสามารถเรียกใช้เมธอดที่มีอาร์กิวเมนต์ใน EL ได้:
<h:commandButton action="#{bean.submit(component.id)}" /> <!-- or component.clientId -->
กับ
public void submit(String id) {
// ...
}