@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
।
আরো দেখুন: