জেএসএফ 2 এ ফেসস-কনফিগারেশন.এমএমএল এর ব্যবহার কী?


89

টীকাগুলির জন্য জেএসএফ 2 বড় সহায়তার পরে, আমি কী faces-config.xmlজন্য ব্যবহার করব তা ভাবছি । এখন এর গুরুত্ব কী?

অন্য কথায়, কনফিগারেশনগুলি কী যা কেবল faces-config.xmlটীকাগুলির মাধ্যমে করা যায় না?

এই মুহুর্তে আমি এর জন্য যা ব্যবহার করছি তা হ'ল স্প্রিংয়ের ইএল সমাধানকারীকে ঘোষণা করা।

<?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>

4
আমাদের অন্তর্নির্মিত ইএলআরসলভার নির্দিষ্ট করার প্রয়োজন কেন? আমি ভেবেছিলাম নকশার দর্শনটি কনফিগারেশনের উপরে কনভেনশন ...
— মাস্টার্সিলো

আমিও নাই <el-resolver>আমার মধ্যে faces-config.xmlএবং এটি পুরোপুরি কাজ করছে।
— রোল্যান্ড

উত্তর:


142

এটি এখনও এমন অনেক কিছুর জন্য ব্যবহার করা যায় যা টীকানো যায় না। যেমন কাস্টম জেএসএফ বৈধতা বার্তা:

<application>
    <message-bundle>com.example.i18n.messages</message-bundle>
</application>

একটি গ্লোবাল আই 18n বান্ডিল (যাতে আপনাকে <f:loadBundle>প্রতিটি দর্শনে ঘোষণার দরকার নেই ):

<application>
    <resource-bundle>
        <base-name>com.example.i18n.Text</base-name>
        <var>text</var>
    </resource-bundle>
</application>

আই 18 এন লোকেলগুলি স্পষ্টভাবে সমর্থিত (যাতে এর জন্য কোনও বার্তা বা সংস্থান বান্ডেল থাকা সত্ত্বেও ঘোষিত না হওয়াগুলি উপেক্ষা করা হবে):

<application>
    <locale-config>
        <default-locale>en</default-locale>
        <supported-locale>nl</supported-locale>
        <supported-locale>es</supported-locale>         
        <supported-locale>de</supported-locale>         
    </locale-config>
</application>

কাস্টম ভিউ হ্যান্ডলারগুলি :

<application>
    <view-handler>com.example.SomeViewHandler</view-handler>
</application>

পর্যায়ের শ্রোতা (এখনও এর জন্য কোনও টিকা নেই):

<lifecycle>
    <phase-listener>com.example.SomePhaseListener</phase-listener>
</lifecycle>

Managed মটরশুটি যা সটীক করা যাবে না (নীচে বর্তমান দেয় Dateউপর #{now}):

<managed-bean>
    <description>Current date and time</description>
    <managed-bean-name>now</managed-bean-name>
    <managed-bean-class>java.util.Date</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
</managed-bean>

কাস্টম ব্যতিক্রম হ্যান্ডলার কারখানা যেমন কাস্টম কারখানা, (এটা এছাড়াও কারখানার পারবেন FacesContext, ExternalContext, LifeCycleএবং আরো অনেক, যাতে আপনি আপনার কাস্টম বাস্তবায়ন প্রদান করতে পারেন):

<factory>
    <exception-handler-factory>com.example.SomeExceptionHandlerFactory</exception-handler-factory>
</factory>

শুধুমাত্র ব্যবহৃত ব্যবহৃত নামকরণ। আপনার যদি faces-config.xmlআইডিইতে ট্যাগ স্বতঃপূরণ হয়, আপনি সেগুলি সন্ধান করতে পারেন। নতুন টীকাগুলি এবং অন্তর্নিহিত নেভিগেশনের জন্য কেবল পরিচালিত মটরশুটি, ভ্যালিডিটার, রূপান্তরকারী, উপাদান, রেন্ডার এবং পয়েন্ট-টু-পয়েন্ট নেভিগেশনের ক্ষেত্রে আর প্রয়োজন নেই।


7
@Matt: আমি যেখানে একটি একটি প্রকল্প ছিল java.util.HashMapযেমন #{components}সব উপাদান বাইন্ডিং একটি ভাল ঘোষণামূলক ওভারভিউ আছে অনুরোধ সুযোগ মধ্যে সংরক্ষিত হয়। উদাহরণস্বরূপ binding="#{components.foo}"যাতে এটি উল্লেখ করা যেতে পারে #{components.foo}যেটি স্ব-ডকুমেন্টিং এবং কম ঝুঁকিপূর্ণ (সম্ভাব্য নাম সংঘর্ষের কারণে) binding="#{foo}"এবং এর চেয়ে বেশি #{foo}।
— BalusC

4
আমি এল-রিসলভার নির্দিষ্ট করার জন্য কিছু টীকাও খুঁজছিলাম। এখন আমি মনে করি টীকাগুলির মাধ্যমে এই অ্যাপ্লিকেশন বৈশিষ্ট্যগুলি নির্দিষ্ট করার উপায় নেই .. ঠিক .. ??
— রূপ মজুমদার

@ রূপমজুমদার আপনি এ জাতীয় টীকাটি কোথায় রাখতে চান, আমার মানে কোন শ্রেণিতে? এই সম্পত্তি পুরো অ্যাপ্লিকেশন ছড়িয়ে আছে।
— iozee

4
এফডাব্লুআইডাব্লু, অ্যাপাচি ডেল্টাসপাইক ব্যবহার করার সময়, JsfPhaseListener টীকাগুলি ফেস-কনফিগার.এক্সএমএলে কনফিগার করার প্রয়োজন ছাড়াই ফেজ শ্রোতাদের ব্যবহারের জন্য ব্যবহার করা যেতে পারে।
— jpangamarca
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.