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

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


2
วิธีการเลือกขอบเขตถั่วที่เหมาะสม?
ฉันสังเกตเห็นว่ามีขอบเขตถั่วที่แตกต่างกันเช่น: @RequestScoped @ViewScoped @FlowScoped @SessionScoped @ApplicationScoped จุดประสงค์ของแต่ละคนคืออะไร? ฉันจะเลือกขอบเขตที่เหมาะสมสำหรับถั่วของฉันได้อย่างไร
381 jsf  jsf-2  scope  managed-bean 

12
commandButton / commandLink / ajax วิธีการดำเนินการ / ฟังไม่ได้เรียกหรือค่าการป้อนข้อมูลไม่ได้ตั้ง / ปรับปรุง
บางครั้งเมื่อใช้<h:commandLink>, <h:commandButton>หรือ<f:ajax>ที่action, actionListenerหรือlistenerวิธีการที่เกี่ยวข้องกับแท็กจะเป็นเพียงการไม่ได้ถูกเรียก หรือคุณสมบัติ bean จะไม่ถูกอัพเดตด้วยUIInputค่าที่ส่ง สาเหตุและวิธีแก้ไขที่เป็นไปได้สำหรับสิ่งนี้คืออะไร

13
อะไรคือข้อเสียเปรียบหลักของ Java Server Faces 2.0?
เมื่อวานนี้ฉันเห็นงานนำเสนอบน Java Server Faces 2.0 ซึ่งดูน่าประทับใจอย่างแท้จริงแม้ว่าฉันจะเป็นนักพัฒนา ASP.NET MVC / jQuery ที่มีความสุข สิ่งที่ฉันชอบมากที่สุดเกี่ยวกับ JSF คือส่วนประกอบ AJAX-Enabled UI ซึ่งดูเหมือนจะทำให้การพัฒนาเร็วกว่า ASP.NET MVC โดยเฉพาะอย่างยิ่งบนไซต์ AJAX ที่ใช้งานหนัก การทดสอบบูรณาการดูดีมากเช่นกัน เนื่องจากงานนำเสนอเน้นเฉพาะข้อดีของ JSF ฉันจึงอยากได้ยินเกี่ยวกับอีกด้านหนึ่งเช่นกัน ดังนั้นคำถามของฉันคือ: อะไรคือข้อเสียเปรียบหลักของ Java Server Faces 2.0? อะไรที่ทำให้นักพัฒนา JSF พิจารณาใช้ ASP.NET MVC แทน JSF
234 asp.net-mvc  jsf  jsf-2 

1
ไลบรารีรีซอร์ส JSF คืออะไรและควรใช้อย่างไร?
JSF <h:outputStylesheet>, <h:outputScript>และ<h:graphicImage>ส่วนประกอบมีlibraryแอตทริบิวต์ สิ่งนี้คืออะไรและควรใช้สิ่งนี้อย่างไร มีตัวอย่างจำนวนมากบนเว็บที่ใช้ดังต่อไปนี้กับเนื้อหา / ประเภทไฟล์cssทั่วไปjsและimg(หรือimage) เป็นชื่อไลบรารีขึ้นอยู่กับแท็กที่ใช้: <h:outputStylesheet library="css" name="style.css" /> <h:outputScript library="js" name="script.js" /> <h:graphicImage library="img" name="logo.png" /> มันมีประโยชน์อย่างไร? libraryค่าในตัวอย่างเหล่านั้นดูเหมือนว่าจะเป็นเพียงแค่การทำซ้ำสิ่งที่จะได้รับแล้วแสดงโดยแท็กชื่อ สำหรับ<h:outputStylesheet>มันขึ้นอยู่กับชื่อแท็กแล้วชัดเจนว่ามันหมายถึง "ห้องสมุด CSS" อะไรคือความแตกต่างของสิ่งต่อไปนี้ที่ใช้งานได้เหมือนกัน? <h:outputStylesheet name="css/style.css" /> <h:outputScript name="js/script.js" /> <h:graphicImage name="img/logo.png" /> นอกจากนี้เอาต์พุต HTML ที่สร้างขึ้นนั้นแตกต่างกันเล็กน้อย กำหนดเส้นทางบริบท/contextnameและFacesServletการแมปบนรูปแบบ URL ของ*.xhtmlอดีตสร้าง HTML ต่อไปนี้ด้วยชื่อไลบรารีเป็นพารามิเตอร์คำขอ: <link rel="stylesheet" type="text/css" href="/contextname/javax.faces.resource/style.css.xhtml?ln=css" /> <script type="text/javascript" …
228 jsf  jsf-2  resources 


10
javax.faces.application.ViewExpiredException: ไม่สามารถกู้คืนมุมมองได้
ฉันได้เขียนแอพพลิเคชั่นที่เรียบง่ายพร้อมความปลอดภัยที่จัดการโดยคอนเทนเนอร์ ปัญหาคือเมื่อฉันเข้าสู่ระบบและเปิดหน้าอื่นที่ฉันออกจากระบบแล้วฉันกลับมาที่หน้าแรกและฉันคลิกที่ลิงค์อื่น ๆ หรือหน้ารีเฟรชฉันได้รับข้อยกเว้นนี้ ฉันเดาว่าเป็นเรื่องปกติ (หรืออาจจะไม่ใช่ :)) เพราะฉันออกจากระบบและเซสชันถูกทำลาย ฉันควรทำอย่างไรเพื่อเปลี่ยนเส้นทางผู้ใช้ไปที่ตัวอย่างเช่น index.xhtml หรือ login.xhtml และช่วยให้เขาเห็นหน้าข้อผิดพลาด / ข้อความ? กล่าวอีกนัยหนึ่งฉันจะเปลี่ยนเส้นทางหน้าอื่นไปยังหน้าดัชนี / ล็อกอินโดยอัตโนมัติหลังจากที่ฉันออกจากระบบได้อย่างไร นี่มันคือ: javax.faces.application.ViewExpiredException: viewId:/index.xhtml - View /index.xhtml could not be restored. at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:212) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) at filter.HttpHttpsFilter.doFilter(HttpHttpsFilter.java:66) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) …

3
JSTL ใน JSF2 Facelets …เข้าท่าไหม?
ฉันต้องการส่งออกโค้ด Facelets เล็กน้อยตามเงื่อนไข เพื่อจุดประสงค์นั้นแท็ก JSTL ดูเหมือนจะทำงานได้ดี: <c:if test="${lpc.verbose}"> ... </c:if> อย่างไรก็ตามฉันไม่แน่ใจว่านี่เป็นการปฏิบัติที่ดีที่สุดหรือไม่? มีวิธีอื่นในการบรรลุเป้าหมายของฉันหรือไม่
163 jsf  jsf-2  jstl  facelets 

1
<f: metadata> อะไร, <f: viewParam> และ <f: viewAction> ใช้สำหรับอะไรได้บ้าง
ทุกคนสามารถชี้แจงได้อย่างไรว่าเราสามารถใช้งานทั่วไปหรือตัวอย่างในโลกแห่งความเป็นจริงตัวอย่างข้อมูลนี้ได้หรือไม่ &lt;f:metadata&gt; &lt;f:viewParam id="id" value="#{bean.id}" /&gt; &lt;f:viewAction action="#{bean.init}" /&gt; &lt;/f:metadata&gt;

5
จะค้นหารหัสลูกค้าของส่วนประกอบสำหรับ ajax update / render ได้อย่างไร ไม่พบส่วนประกอบที่มีนิพจน์“ foo” อ้างอิงจาก“ bar”
รหัสต่อไปนี้เป็นแรงบันดาลใจจาก PrimeFaces DataGrid + DataTable สอนและใส่ลงไปใน&lt;p:tab&gt;การ&lt;p:tabView&gt;พำนักอยู่ในของ&lt;p:layoutUnit&gt; &lt;p:layout&gt;นี่คือส่วนด้านในของรหัส (เริ่มต้นจากp:tabองค์ประกอบ); ส่วนนอกเป็นเรื่องเล็กน้อย &lt;p:tabView id="tabs"&gt; &lt;p:tab id="search" title="Search"&gt; &lt;h:form id="insTable"&gt; &lt;p:dataTable id="table" var="lndInstrument" value="#{instrumentBean.instruments}"&gt; &lt;p:column&gt; &lt;p:commandLink id="select" update="insTable:display" oncomplete="dlg.show()"&gt; &lt;f:setPropertyActionListener value="#{lndInstrument}" target="#{instrumentBean.selectedInstrument}" /&gt; &lt;h:outputText value="#{lndInstrument.name}" /&gt; &lt;/p:commandLink&gt; &lt;/p:column&gt; &lt;/p:dataTable&gt; &lt;p:dialog id="dlg" modal="true" widgetVar="dlg"&gt; &lt;h:panelGrid id="display"&gt; &lt;h:outputText value="Name:" /&gt; &lt;h:outputText value="#{instrumentBean.selectedInstrument.name}" /&gt; &lt;/h:panelGrid&gt; &lt;/p:dialog&gt; &lt;/h:form&gt; …
140 ajax  jsf  jsf-2  primefaces  clientid 

5
การย้ายข้อมูลจาก JSF 1.2 เป็น JSF 2.0
ฉันกำลังทำงานร่วมกับแอพพลิเคค่อนข้างใหญ่เขียนในJSF 1.2 JSF 1.2 มีอายุประมาณ 6 ปี ฉันต้องการอัปเกรดเป็น JSF 2.0 จะเจ็บปวดขนาดไหน? ฉันสังเกตเห็นว่ามีการเปลี่ยนแปลงคุณลักษณะบางอย่างในแท็กที่กำหนดเองเป็นต้น
136 java  jsf  migration  jsf-2 

2
เมื่อใดที่ฉันควรใช้ h: outputLink แทน h: commandLink
เมื่อใดที่ฉันควรใช้&lt;h:outputLink&gt;แทน&lt;h:commandLink&gt;? ฉันเข้าใจว่ามีการcommandLinkสร้างโพสต์ HTTP ฉันคาดเดาว่าoutputLinkจะสร้าง HTTP gets ที่กล่าวว่าเนื้อหาการสอน JSFส่วนใหญ่ที่ฉันอ่านใช้commandLink(เกือบ?) เท่านั้น บริบท: ฉันกำลังใช้โครงการสาธิตเล็ก ๆ น้อย ๆ ที่แสดงลิงก์ส่วนหัวไปยังหน้าผู้ใช้เหมือนกับ Stack Overflow ... ... และฉันไม่แน่ใจว่าcommandLink(อาจจะใช้?faces-redirect=trueสำหรับบุ๊กมาร์ก) หรือoutputLinkเป็นตัวเลือกที่ถูกต้อง
129 jsf  jsf-2 

5
ถั่วสำรอง (@ManagedBean) หรือ CDI Beans (@Named)?
ฉันเพิ่งเริ่มอ่านผ่านCore JavaServer Faces, 3rd Ed และพวกเขาพูดแบบนี้ (เน้นของฉัน): เป็นอุบัติเหตุทางประวัติศาสตร์ที่มีกลไกสองอย่างแยกกันคือถั่ว CDI และถั่วที่จัดการโดย JSF สำหรับถั่วที่สามารถใช้ในหน้า JSF ได้ เราขอแนะนำให้คุณใช้เมล็ดพันธุ์ CDIเว้นแต่ว่าแอปพลิเคชันของคุณจะต้องใช้งานกับ servlet runner ธรรมดาเช่น Tomcat ทำไม? พวกเขาไม่ได้ให้เหตุผลใด ๆ ฉันใช้@ManagedBeanสำหรับถั่วทั้งหมดในแอปพลิเคชันต้นแบบที่ทำงานบน GlassFish 3 และฉันไม่ได้สังเกตเห็นปัญหาใด ๆ เกี่ยวกับสิ่งนี้เลย ฉันไม่ได้โดยเฉพาะอย่างยิ่งใจย้ายจาก@ManagedBeanไป@Namedแต่ฉันต้องการที่จะรู้ว่าทำไมฉันจึงควรรำคาญ
109 jsf  jakarta-ee  jsf-2  cdi 

4
วิธีใช้ค่า enum ใน f: selectItem (s)
ฉันต้องการสร้างเมนูแบบเลื่อนลง selectOneMenu เพื่อที่ฉันจะได้เลือกสถานะสำหรับคำถามของฉัน เป็นไปได้หรือไม่ที่จะทำให้ f: selectItem มีความยืดหยุ่นมากขึ้นโดยพิจารณาว่าจะเกิดอะไรขึ้นหากลำดับของ enums เปลี่ยนไปและรายการมีขนาดใหญ่หรือไม่? และฉันจะทำได้ดีกว่านี้ไหม และเป็นไปได้หรือไม่ที่จะ "เลือก" รายการที่มีคำถาม? คลาส Enum public enum Status { SUBMITTED, REJECTED, APPROVED } เอนทิตีคำถาม @Enumerated(EnumType.STRING) private Status status; JSF &lt;div class="field"&gt; &lt;h:outputLabel for="questionStatus" value="Status" /&gt; &lt;h:selectOneMenu id="questionStatus" value="#{bean.question.status}" &gt; &lt;f:selectItem itemLabel="Submitted" itemValue="0" /&gt; &lt;f:selectItem itemLabel="Rejected" itemValue="1" /&gt; &lt;f:selectItem itemLabel="Approved" itemValue="2" …

1
เมื่อใดควรใช้ <ui: include> ไฟล์แท็กคอมโพสิตคอมโพสิตและ / หรือคอมโพเนนต์แบบกำหนดเอง
ฉันเริ่มใช้ JSF 2.0 กับ Facelets เมื่อเร็ว ๆ นี้และรู้สึกงงงวยกับส่วนประกอบคอมโพสิตใหม่ที่รู้&lt;ui:include&gt;เทคนิคที่มีอยู่และเทคนิคอื่น ๆ ที่ Facelets 1.x นำเสนอ อะไรคือความแตกต่างระหว่างแนวทางเหล่านี้? ดูเหมือนว่าพวกเขาจะนำเสนอสิ่งเดียวกัน: &lt;ui:param&gt;vs &lt;cc:attribute&gt;, &lt;ui:insert&gt;+ &lt;ui:define&gt;vs tag files, การนำเทมเพลตที่มีอยู่มาใช้ซ้ำ มีอะไรนอกเหนือจากไวยากรณ์และข้อกำหนดของอินเทอร์เฟซที่ชัดเจนในกรณีของคอมโพสิตหรือไม่? ประสิทธิภาพอาจแตกต่างกันหรือไม่?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.