@PostConstruct টীকাটি ব্যবহার করে কোনও পৃষ্ঠা শ্লোকগুলির জন্য ডেটা শুরু করার জন্য যখন কারও f: viewAction বা preRenderView ইভেন্টটি ব্যবহার করা উচিত?
<f:viewAction>এইচটিএমএল রেন্ডার হওয়ার আগে আপনি যখন কোনও পদ্ধতি চালাতে চান তখন ব্যবহার করুন । এটি বিশেষভাবে কার্যকর যদি আপনি <f:viewParam>আপডেট মডেল মান পর্যায়ের সময় দ্বারা সেট করা মডেল মানগুলির উপর ভিত্তি করে ক্রিয়া সম্পাদন করতে চান । যথা, @PostConstructরান করার মুহুর্তে এগুলি পাওয়া যায় না । জেএসএফ ২.০ / ২.১ এ, এই ট্যাগটি বিদ্যমান ছিল না এবং আপনাকে preRenderViewকার্যবিধি ব্যবহার করতে হবে ।
যদি ব্যাকিং শিমটি @RequestScoped হয় তবে তারা কার্যকরভাবে ঠিক একই জিনিসটি করে? (এবং তারপরে এটি বিকাশকারী নির্বাচনের উপর নির্ভর করে? (@ পোস্টকনস্ট্রাক্ট মনে হয় "ক্লিনার"))।
না, তারা অবশ্যই কার্যকরভাবে একই জিনিসটি করে না। @PostConstructকর্ম সঞ্চালনের জন্য intented হয় সরাসরি শিম নির্মাণের সব ইনজেকশনের নির্ভরতা সেটিং এবং যেমন পরিচালিত বৈশিষ্ট্য পর @EJB, @Inject, @ManagedProperty, ইত্যাদি যেমন, ইনজেকশনের নির্ভরতা না শিম এর কন্সট্রাকটর ভিতরে পাওয়া যায়। শিমের ভিউ, সেশন বা অ্যাপ্লিকেশন বাদ দেওয়া হলে এটি প্রতি ভিউ, সেশন বা অ্যাপ্লিকেশন অনুযায়ী একবারই চলবে। <f:viewAction>ডিফল্ট কেবলমাত্র প্রারম্ভিক তাহলে GET অনুরোধ প্রার্থনা দ্বারা, কিন্তু মাধ্যমে করতে onPostback="true"অ্যাট্রিবিউট পাশাপাশি postback অনুরোধ প্রার্থনা করার জন্য কনফিগার করা। দ্যpreRenderViewঘটনা যে HTTP- র অনুরোধে প্রার্থনা (হ্যাঁ, এটি Ajax অনুরোধ অন্তর্ভুক্ত!)।
সংক্ষিপ্ত, ব্যবহার @PostConstructযদি আপনি ইনজেকশনের নির্ভরতা এবং পরিচালিত বৈশিষ্ট্য যা দ্বারা সেট করা হয় কর্ম সঞ্চালন করতে চান @EJB, @Inject, @ManagedPropertyশিম এর নির্মানের সময়, ইত্যাদি। ব্যবহার করুন <f:viewAction>যদি আপনি এছাড়াও দ্বারা সেট বৈশিষ্ট্য উপর কর্ম সঞ্চালন করতে চান <f:viewParam>। আপনি এখনও জেএসএফ ২.০ / ২.১ এ থাকলে preRenderViewপরিবর্তে ব্যবহার করুন <f:viewAction>। আপনি প্রয়োজনে কেবল প্রাথমিক অনুরোধে ক্রিয়া FacesContext#isPostback()সম্পাদন করতে একটি চেক যোগ করতে পারেন preRenderView।
আরো দেখুন: