จะส่ง ID ของปุ่มที่สร้างแบบไดนามิกไปยังวิธีดำเนินการได้อย่างไร

ฉันสร้างเพจ Facelets ในเพจที่สร้างปุ่มบางปุ่มแบบไดนามิก แต่ละปุ่มจะมี ID เมื่อส่งเหตุการณ์ ฉันต้องการส่ง ID ของปุ่มไปยังการดำเนินการ (ปุ่มเป็นแบบไดนามิก)

แต่ฉันไม่รู้วิธีส่งพารามิเตอร์ไดนามิกใน JSF


person wsxiapiaoxue    schedule 14.12.2011    source แหล่งที่มา


คำตอบ (1)


คุณสามารถรับส่วนประกอบของปุ่มในวิธีดำเนินการได้โดย 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) {
    // ...
}
person BalusC    schedule 14.12.2011