যাক আমি এইরূপ একটি আউটপুটেক্সট উপাদান নির্দিষ্ট করি:
<h:outputText value="#{ManagedBean.someProperty}"/>
যদি আমি কোনও লগ বার্তা মুদ্রণ করি এবং যখন গ্রাহককে কল করা someProperty
হয় এবং পৃষ্ঠাটি লোড করা হয়, তবে এটি লক্ষ্য করা তুচ্ছ যে লক্ষ্য করা যায় যে অনুরোধককে অনুরোধের জন্য একাধিকবার ডাকা হচ্ছে (আমার ক্ষেত্রে যা ঘটেছিল তা দু'বার বা তিনবার):
DEBUG 2010-01-18 23:31:40,104 (ManagedBean.java:13) - Getting some property
DEBUG 2010-01-18 23:31:40,104 (ManagedBean.java:13) - Getting some property
মানটি someProperty
গণনা করা ব্যয়বহুল হলে এটি সম্ভাব্য সমস্যা হতে পারে।
আমি কিছুটা গুগল করেছিলাম এবং এটি উপলব্ধি করা বিষয় a একটি কাজের সমাধান ছিল একটি চেক অন্তর্ভুক্ত করা এবং এটি ইতিমধ্যে গণনা করা হয়েছে কিনা তা দেখার জন্য:
private String someProperty;
public String getSomeProperty() {
if (this.someProperty == null) {
this.someProperty = this.calculatePropertyValue();
}
return this.someProperty;
}
এটির সাথে প্রধান সমস্যাটি হ'ল আপনি বয়লারপ্লেট কোডটি প্রচুর পরিমাণে পান, এমন প্রাইভেট ভেরিয়েবলগুলি উল্লেখ না করে যা আপনার প্রয়োজন হয় না।
এই পদ্ধতির বিকল্পগুলি কী কী? এত অপ্রয়োজনীয় কোড ছাড়া এটি অর্জনের কোনও উপায় আছে কি? জেএসএফকে এভাবে আচরণ করা থেকে বিরত করার কোনও উপায় আছে কি?
আপনার ইনপুট জন্য ধন্যবাদ!