سلام
خیلی از سوالاتی که دوستان از من میپرسن بصورت خیلی کامل با مثالهای مختلف توی کتاب آموزش JavaServer Faces از انتشارات ناقوس توضیح داده شده است. خرید این کتاب اینترتی هست. بهتر است سوالاتی پرسیده شود که توی این کتاب توضیح داده نشده است
با تشکر
سلام
خیلی از سوالاتی که دوستان از من میپرسن بصورت خیلی کامل با مثالهای مختلف توی کتاب آموزش JavaServer Faces از انتشارات ناقوس توضیح داده شده است. خرید این کتاب اینترتی هست. بهتر است سوالاتی پرسیده شود که توی این کتاب توضیح داده نشده است
با تشکر
طراحی مدل های MVC در JSF 2.0- روش اول
روش اول:
برای آشنایی با این روش, بهتر است هر لایه را بصورت جداگانه معرفی نموده و در پایان این بحث مزایا و معایب آنرا توضیح دهیم:
لایه View
این لایه متشکل از صفحات وب, کتابخانه های جاوا اسکریپت, و فایلهای CSS میباشد. صفحات وب در این لایه عموما از فایلهایی با پسوند xhtml ایجاد میشوند.
لایه Controller
این لایه متشکل از فایلها و کلاسهای جاوا بوده که با علامتهای Named@ و ManagedBean@ ایجاد میگردند. وظیفه این لایه مدیریت داده هاو رکورد ها قبل از ارسال به پایگاه داده (لایه Model) و یا ایجاد اطلاعات لازم برای نمایش در لایه View میباشد.
بررسی تغییرات متن در JTextField
اگر در برنامه خود نیاز دارید که بدانید چه زمانی محتویات کامپوننت متنی و یا متن آن تغییر می کند، باید از اینترفیس DocumentListener استفاده کرده و کنترل رویدادها را در درون آن انجام دهید . DocumentListener دارای متدهای زیر برای کنترل متن داخل JTextField و یا هر کامپوننت متنی دیگر است .
public interface DocumentListener implements EventListener {
public void changedUpdate(DocumentEvent documentEvent);
public void insertUpdate(DocumentEvent documentEvent);
public void removeUpdate(DocumentEvent documentEvent);
}
روش انجام کار دقیقا مانند مثالهای گفته شده در قسمتهای قبل میباشد، در این مثال از کلاس IntegerDocumentFilter که با استفاده از کلاس DocumentFilter پیاده سازی شده است ، استفاده خواهیم کرد. همچنین با استفاده از متد Integer.parseInt رشته ورودی را کنترل کرده و اگر از نوع عددی نباشد یک استثناء از نوع BadLocationException ایجاد خواهد شد و در غیر اینصورت همان رشته ورودی مورد قبول خواهد بود .
package documentfilter;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;
در مجموعه کنترلهای AWT ، اگر شما نیاز داشتید که ورود متن را در کامپوننتهای متنی محدود به کاراکتر خاصی نمائید، مانند اینکه در TextField فقط اعداد وارد شود و یا فقط حروف الفبا وارد شود و یا اینکه اعداد وارد شده در محدوده خاصی باشند، باید رویدادهای KeyListener و consume را به کامپوننت متنی مانند TextField اضافه می کردید. اما در مجموعه کنترلهای Swing شما می توانید این کار را با استفاده از اینترفیس Document انجام داده و یا یک کلاس DocumentFilter را به کامپوننت متنی اضافه کرده و کنترل اطلاعات را بوسیله آن انجام دهید. برای انجام این کار باید از متد setDocumentFilter از کلاس AbstractDocument استفاده کنید . کلاس DocumentFilter دارای 3 نوع متد است که می توانید بوسیله آنها ورود متن در کامپوننتهای متنی مانند JTextField را کنترل کنید. با توجه به اینکه این کلاس یک کلاس اصلی است برای ایجاد فیلتر باید یک کلاس فرعی ایجاد کرده که extends کلاس DocumentFilter باشد . متدهایی که می توان در کلاس DocumentFilter مورد استفاده قرار داد به صورت زیر میباشند.