سؤال

أنا أستخدم ICEfaces مع ICEpush لدفع بعض البيانات إلى المتصفح.

ومع ذلك، فإنه لا يعمل كما هو مخطط له:إنه لا يستخدم AJAX، بل يستدعي الإجراء ويعود منه مثلما يفعل أي إجراء آخر غير AJAX.

أنا أستخدم أحدث إصدارات ICEfaces وICEpush وTomahawk 7 وJSF 2.

إنه لا يعمل مع Servlet 2.5 ولا Servlet 3.0.

هذه هي الأجزاء المهمة من الفول الخاص بي (عرض النطاق):

public AjaxTest() {
    PushRenderer.addCurrentSession(PUSH_GROUP);
}

    public void addText() throws InterruptedException {
    for(int i = 0; i < 5; i++) {
        lines.add("line " + i);
        PushRenderer.render(PUSH_GROUP);
        Thread.sleep(1000);                     
    }
}

وهذا مقتطف من النموذج الخاص بي:

    <h:panelGroup>
        <h:dataTable id="ajaxTestTable" value="#{ajaxTest.lines}" var="line">
            <h:column>
                <h:outputText value="#{line}" />
            </h:column>
        </h:dataTable>
        <h:commandButton id="startAjax" value="Start"
            action="#{ajaxTest.addText}" />
    </h:panelGroup>

هل فاتني شيء؟شكرًا!

هل كانت مفيدة؟

المحلول

ICEACES 2.0 لم يتم دمجها بعد مع MyFaces.هل جربت طلبك مع ملفات Mojarra .jar المضمنة؟

نصائح أخرى

أنا معتاد فقط على ICEACACE 1.8، ولكن يبدو لي زر الأمر الخاص بك غير ممكن AJAX.كما يجب عليك استخدام ActionListener بدلا من إجراء

يمكنك استخدام إما زر الأمر ICEACESS:

giveacodicetagpre.

أو JSF 2 AJAX العلامات:

giveacodicetagpre.

هل لديك بعض الأداة التطوير التي يمكنها التحقق من صحة الرمز؟على الأقل في إصدار Vaadin من IcePush، لا يمكنك الوثوق بأمثلة.على العرض التوضيحي الرسمي الخاص بهم، تم إهمال التعليمات البرمجية وعلى دردشتها التي قدموها الكود حيث كانت الواردات من كوكب آخر مع تلك الصحيحة.

أخبرني الكسوف أن العديد من الواردات كانت خاطئة وتم إهمال المدونة علامات على بعض الوظائف.هؤلاء الرجال هناك تطور بسرعة لدرجة أن وثائقهم قديمة بشكل دائم.لذلك، اقرأ بعناية ما تقوله أداةك حول الكود!

لدي أيضًا مشكلة في تكامل IceFaces (لاستخدام الدفع) مع التطبيق الذي يستخدم Richfaces بالفعل.ولكن من الممكن دمج IcePush مباشرةً مع أي تطبيق ويب جافا تقريبًا (مع Servlet Api).يمكنك رؤية المزيد من التفاصيل على http://achorniy.wordpress.com/2012/02/29/icepush-integration-to-web-application/

الفكرة هي استخدام javascript-api(أو jQuery-api) الذي توفره IcePush.لذا، فإن صفحتك التي تحتوي على javascript-api تسجل نفسها كمستمع لدفع الإشعارات وفي رد الاتصال يمكنك استدعاء أي وظائف جافا سكريبت لتحديث صفحتك.في مثال Richfaces، يمكنك استخدام ajaxUpdateFunction() الذي يدعمه بالفعل <a4j:jsFunction name="ajaxUpdateFunction" action="#{myBean.update} reRender="updatedComponent(s)" ajaxSingle="true"/> أو قم بتنفيذ طلب ajax باستخدام jQuery.في حالتك (JSF-2.0) أعتقد أنه يمكنك الاتصال jsf.ajax.request(this, event, {render:'ajaxTestTable'}) لتحديث ما تريد (أمثلة http://andyschwartz.wordpress.com/2009/07/31/whats-new-in-jsf-2/)

كل ما عليك القيام به من جانب الخادم - هو تسجيل IcePush servlet وتهيئة اتصال IcePush من جانب العميل باستخدام javascript API.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top