คำถามติดแท็ก jsf-2

JavaServer Faces (JSF) เป็นเฟรมเวิร์กโมเดลมุมมองผู้นำเสนอโดยทั่วไปใช้เพื่อสร้างเว็บแอปพลิเคชัน เวอร์ชัน 2.x เป็นก้าวที่สำคัญเมื่อเทียบกับ JSF 1.x ซึ่งเป็นการขยายชุดคอมโพเนนต์มาตรฐานและไลบรารีคอมโพเนนต์อย่างมีนัยสำคัญ

6
รับ JSF ที่มีการจัดการ bean ตามชื่อในคลาสที่เกี่ยวข้องกับ Servlet
ฉันกำลังพยายามเขียน servlet ที่กำหนดเอง (สำหรับ AJAX / JSON) ซึ่งฉันต้องการอ้างอิง@ManagedBeansตามชื่อ ฉันหวังว่าจะทำแผนที่: http://host/app/myBean/myProperty ถึง: @ManagedBean(name="myBean") public class MyBean { public String getMyProperty(); } เป็นไปได้ไหมที่จะโหลด bean โดยใช้ชื่อจาก servlet ปกติ มี servlet JSF หรือตัวช่วยที่ฉันสามารถใช้ได้หรือไม่ ดูเหมือนว่าฉันจะเสียฤดูใบไม้ผลิซึ่งทั้งหมดนี้ชัดเจนเกินไป

10
วิธีใช้ PrimeFaces p: fileUpload? วิธีการ Listener จะไม่ถูกเรียกใช้หรืออัปโหลดไฟล์เป็นโมฆะ / แสดงข้อผิดพลาด / ใช้งานไม่ได้
ฉันพยายามอัปโหลดไฟล์โดยใช้ PrimeFaces แต่fileUploadListenerวิธีนี้ไม่ถูกเรียกใช้หลังจากการอัปโหลดเสร็จสิ้น นี่คือมุมมอง: <h:form> <p:fileUpload fileUploadListener="#{fileUploadController.handleFileUpload}" mode="advanced" update="messages" sizeLimit="100000" allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/> <p:growl id="messages" showDetail="true"/> </h:form> และถั่ว: @ManagedBean @RequestScoped public class FileUploadController { public void handleFileUpload(FileUploadEvent event) { FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded."); FacesContext.getCurrentInstance().addMessage(null, msg); } } ฉันได้วางเบรกพอยต์ไว้ในวิธีการแล้ว แต่ไม่เคยเรียก เมื่อใช้mode="simple"และajax="false"จะถูกเรียกใช้ แต่ฉันต้องการให้มันทำงานในโหมดขั้นสูง ฉันใช้ Netbeans และ Glassfish 3.1

4
ฉันสามารถอัปเดตคอมโพเนนต์ JSF จากเมธอด JSF backing bean ได้หรือไม่
มีวิธีใดที่จะทำให้ JSF Backing bean มีการอัปเดตคอมโพเนนต์บนเพจได้หรือไม่? ฉันไม่ต้องการใช้คอมโพเนนต์ ajax ที่มีคุณสมบัติการอัปเดตเพื่ออัปเดตคอมโพเนนต์บนเพจ ฉันต้องการทริกเกอร์การอัปเดตจากภายในวิธีการถั่วสำรอง JSF โปรดทราบว่าการอัปเดตบนเพจอาจเกิดขึ้นได้หลังจากวิธีนี้เสร็จสิ้นหรือก่อนที่จะเสร็จสิ้น ฉันใช้ PrimeFaces หากมีวิธีแก้ปัญหาจากการใช้ PrimeFaces
100 jsf-2  primefaces 

4
ฉันจะส่งแถวที่เลือกไปยัง commandLink ภายใน dataTable หรือ ui: repeat ได้อย่างไร
ฉันใช้ Primefaces ในแอปพลิเคชัน JSF 2 ฉันมี a <p:dataTable>และแทนที่จะเลือกแถวฉันต้องการให้ผู้ใช้สามารถดำเนินการต่างๆในแต่ละแถวได้โดยตรง สำหรับสิ่งนั้นฉันมีหลายตัว<p:commandLink>ในคอลัมน์สุดท้าย ปัญหาของฉัน: ฉันจะส่ง ID แถวไปยังการดำเนินการที่เริ่มต้นโดยลิงก์คำสั่งได้อย่างไรเพื่อให้ฉันรู้ว่าต้องดำเนินการกับแถวใด ฉันลองใช้<f:attribute>: <p:dataTable value="#{bean.items}" var="item"> ... <p:column> <p:commandLink actionListener="#{bean.insert}" value="insert"> <f:attribute name="id" value="#{item.id}" /> </p:commandLink> </p:column> </p:dataTable> แต่จะให้ผลเป็น 0 เสมอ - เห็นได้ชัดว่าตัวแปรแถวfไม่พร้อมใช้งานเมื่อแสดงผลแอตทริบิวต์ (ใช้งานได้เมื่อฉันใช้ค่าคงที่) ใครมีทางเลือกอื่น

2
ViewParam กับ @ManagedProperty (value =“ # {param.id}”)
อะไรคือความแตกต่างระหว่างการกำหนด View Params ดังนี้: <f:metadata> <f:viewParam name="id" value="#{someBean.id}"/> </f:metadata> และกำหนดคุณสมบัติใน ManagedBean ดังนี้: @ManagedProperty(value = "#{param.id}") private Integer id;

2
เมื่อใดควรใช้ f: viewAction / preRenderView เทียบกับ PostConstruct
เมื่อใดควรใช้f:viewActionหรือpreRenderViewเหตุการณ์เพื่อเริ่มต้นข้อมูลสำหรับเพจเทียบกับการใช้@PostConstructคำอธิบายประกอบ เป็นเหตุผลที่จะใช้อย่างใดอย่างหนึ่งตามประเภทของขอบเขตของ backing bean เช่นถ้า backing bean เป็น@RequestScopedตัวเลือกในการใช้f:viewActionหรือpreRenderViewมากกว่า@PostConstructเพื่อเริ่มต้น backing bean ก่อนที่จะแสดงผลมุมมองจะไม่เกี่ยวข้องเหมือนทั้งสองอย่าง ได้ผลเหมือนกันไหม f: viewAction หรือ preRenderView <f:metadata> <f:viewAction action="#{myBean.initialize}" /> </f:metadata> <f:metadata> <f:event type="preRenderView" listener="#{myBean.initialize}"/> </f:metadata> หรือ @ โพสต์คอนสตรัค public class MyBean { @PostConstruct public void initialize() { } }

4
จะดาวน์โหลดไฟล์จาก JSF backing bean ได้อย่างไร
มีวิธีใดในการดาวน์โหลดไฟล์จากวิธีการดำเนินการแบ็คกิ้ง bean JSF หรือไม่ ฉันลองมาหลายอย่างแล้ว ปัญหาหลักคือฉันไม่สามารถหาวิธีรับOutputStreamการตอบสนองเพื่อเขียนเนื้อหาไฟล์ไปยัง ฉันรู้วิธีดำเนินการกับ a Servletแต่ไม่สามารถเรียกใช้จากแบบฟอร์ม JSF และต้องมีการร้องขอใหม่ ฉันจะได้รับOutputStreamการตอบสนองจากกระแสFacesContext?

1
การใช้ faces-config.xml ใน JSF 2 คืออะไร?
หลังจากการสนับสนุน JSF 2 ครั้งใหญ่สำหรับคำอธิบายประกอบฉันสงสัยว่าฉันจะใช้ไฟล์ faces-config.xmlเพื่ออะไร ตอนนี้ความสำคัญคืออะไร? กล่าวอีกนัยหนึ่งคือการกำหนดค่าใดบ้างที่สามารถทำได้ผ่านfaces-config.xmlคำอธิบายประกอบเท่านั้น ตอนนี้สิ่งที่ฉันใช้เพื่อประกาศตัวแก้ไข EL ของ Spring <?xml version="1.0" encoding="UTF-8"?> <faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0"> <application> <el-resolver> org.springframework.web.jsf.el.SpringBeanFacesELResolver </el-resolver> </application> </faces-config>

5
Error Parsing /page.xhtml: Error Traced [line: 42] มีการอ้างอิงเอนทิตี“ nbsp” แต่ไม่ได้ประกาศ
ฉันต้องการใช้ช่องว่างที่ไม่ทำลายในหน้า JSF ของฉัน ฉันรู้ว่าใน HTML ธรรมดาฉันสามารถใช้ สำหรับสิ่งนี้ได้และมันก็ใช้ได้ดี อย่างไรก็ตามเมื่อฉันใส่สิ่งเหล่านี้ ในหน้า Facelets มันจะเกิดข้อผิดพลาดดังนี้: Error Parsing /page.xhtml: Error Traced [line: 42] มีการอ้างถึงเอนทิตี "nbsp" แต่ไม่ได้ประกาศ มันเกิดจากอะไรและฉันจะแก้ได้อย่างไร?

2
ควรใช้ valueChangeListener หรือ f: ajax listener เมื่อใด
อะไรคือความแตกต่างระหว่างรหัสสองส่วนต่อไปนี้ - เกี่ยวกับlistenerตำแหน่ง? <h:selectOneMenu ...> <f:selectItems ... /> <f:ajax listener="#{bean.listener}" /> </h:selectOneMenu> และ <h:selectOneMenu ... valueChangeListener="#{bean.listener}"> <f:selectItems ... /> </h:selectOneMenu>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.