JavaServer Faces (JSF) ফ্রেমওয়ার্কে FacesMessage API ব্যবহার করা হয় ব্যবহারকারীর ইনপুট বা অ্যাকশনের ফলস্বরূপ মেসেজ প্রদর্শন করতে। এটি ব্যবহারকারীর ইন্টারফেসে (UI) ফলাফল বা ত্রুটি বার্তা দেখানোর জন্য খুবই কার্যকরী। FacesMessage অ্যাপ্লিকেশন ডেভেলপারদের জন্য একটি সুবিধাজনক পদ্ধতি যা বিভিন্ন ধরণের বার্তা (যেমন: ইন্টারফেস সাফল্য, ত্রুটি, সতর্কতা ইত্যাদি) দেখাতে সাহায্য করে। এছাড়া, আপনি Custom Messages তৈরি করে আপনার অ্যাপ্লিকেশনের প্রয়োজন অনুসারে কাস্টমাইজড মেসেজও প্রদর্শন করতে পারেন।
FacesMessage API
FacesMessage একটি ক্লাস যা JSF ফ্রেমওয়ার্কে মেসেজ তৈরি এবং হ্যান্ডল করার জন্য ব্যবহৃত হয়। এটি মূলত তিনটি ধরনের মেসেজ সাপোর্ট করে:
- INFO: সাধারণ তথ্য বার্তা।
- WARN: সতর্কতা বার্তা।
- ERROR: ত্রুটি বার্তা।
JSF তে FacesMessage ব্যবহার করা হয় UI তে মেসেজ রেন্ডার করার জন্য, যেমন ফর্ম ভ্যালিডেশন বা একশন মেথডের মাধ্যমে ইউজারের কাছে ফিডব্যাক দেওয়া।
FacesMessage এর ব্যবহার
FacesMessage ব্যবহার করতে, প্রথমে আপনাকে FacesContext এর মাধ্যমে মেসেজ তৈরি করতে হবে এবং তারপর তা ফেসেস কনটেক্সটে অ্যাড করতে হবে।
উদাহরণ: FacesMessage যুক্ত করা
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.bean.ManagedBean;
@ManagedBean
public class MessageBean {
public String submit() {
FacesContext context = FacesContext.getCurrentInstance();
// Success Message
FacesMessage successMessage = new FacesMessage(FacesMessage.SEVERITY_INFO, "Form Submitted Successfully", "Your form has been successfully submitted.");
context.addMessage(null, successMessage);
// Error Message
FacesMessage errorMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Submission Failed", "An error occurred while submitting the form.");
context.addMessage(null, errorMessage);
return "success";
}
}
এখানে:
- FacesContext.getCurrentInstance(): এটি FacesContext অবজেক্ট তৈরি করে, যা JSF অ্যাপ্লিকেশনের জন্য বর্তমান কনটেক্সট ধারণ করে।
- FacesMessage.SEVERITY_INFO, FacesMessage.SEVERITY_ERROR: এটি মেসেজের গুরুত্ব নির্ধারণ করে (যেমন: তথ্য, ত্রুটি)।
context.addMessage(null, message): এটি FacesContext-এ মেসেজ যোগ করে, যেখানে প্রথম প্যারামিটারnullবা কম্পোনেন্ট আইডি হতে পারে (একটি নির্দিষ্ট UI কম্পোনেন্টের সাথে মেসেজ যুক্ত করতে হলে কম্পোনেন্ট আইডি দেওয়া হয়)।
JSF পেজ (XHTML):
<h:form>
<h:inputText value="#{messageBean.name}" required="true" />
<h:commandButton value="Submit" action="#{messageBean.submit}" />
<h:messages globalOnly="true" />
</h:form>
এখানে:
<h:messages globalOnly="true" />: এটি অ্যাপ্লিকেশনের সকল মেসেজ (তথ্য, সতর্কতা, ত্রুটি) UI তে প্রদর্শন করবে।globalOnly="true": শুধুমাত্র গ্লোবাল মেসেজগুলো প্রদর্শন করবে, ফিল্ড-স্পেসিফিক মেসেজ বাদ যাবে।
Custom FacesMessage (কাস্টম মেসেজ)
আপনি JSF অ্যাপ্লিকেশনে কাস্টম মেসেজ তৈরি করতে পারেন যা ব্যবহারকারীর জন্য নির্দিষ্ট বার্তা প্রদান করবে। এটি বিশেষভাবে দরকারি যখন আপনি ফর্ম ভ্যালিডেশন বা বিজনেস লজিকের মধ্যে কাস্টম বার্তা প্রদর্শন করতে চান।
উদাহরণ: কাস্টম FacesMessage ব্যবহার
public String submit() {
FacesContext context = FacesContext.getCurrentInstance();
// Custom message for a specific field
FacesMessage customMessage = new FacesMessage(FacesMessage.SEVERITY_WARN, "Custom Warning", "This is a custom warning message.");
context.addMessage("username", customMessage); // Attach the message to a specific component
return "success";
}
এখানে, context.addMessage("username", customMessage) ব্যবহার করে আপনি একটি নির্দিষ্ট ফিল্ডের সাথে কাস্টম মেসেজ যুক্ত করতে পারেন, যেমন username ইনপুট ফিল্ডে।
FacesMessage এর Severity Levels
FacesMessage তিনটি প্রধান সেভেরিটি লেভেল সাপোর্ট করে:
- SEVERITY_INFO: সাধারণ তথ্য বার্তা।
- SEVERITY_WARN: সতর্কতা বার্তা, যা ব্যবহারকারীকে কিছু বিষয়ে সতর্ক করে।
- SEVERITY_ERROR: ত্রুটি বার্তা, যা ব্যবহারকারীকে ভুল বা ত্রুটির কথা জানায়।
আপনি এগুলোকে প্রয়োজন অনুসারে ব্যবহার করে মেসেজের গুরুত্ব নির্ধারণ করতে পারেন।
সারাংশ
JSF এর FacesMessage API ব্যবহার করে আপনি সহজে ইউজারের জন্য তথ্য, সতর্কতা এবং ত্রুটি বার্তা প্রদর্শন করতে পারেন। এটি ব্যবহারকারীকে ফর্ম ভ্যালিডেশন বা একশন মেথডের ফলাফল জানাতে সহায়তা করে। JSF তে FacesMessage এর মাধ্যমে আপনি কাস্টম মেসেজ তৈরি এবং প্রদর্শন করতে পারেন এবং <h:messages> ট্যাগ ব্যবহার করে সমস্ত মেসেজ ইউজারের কাছে প্রদর্শন করতে পারেন। FacesMessage এর সেভেরিটি লেভেলস যেমন INFO, WARN, এবং ERROR ব্যবহার করে আপনি বার্তার গুরুত্ব নিয়ন্ত্রণ করতে পারবেন।
Read more