این سایت در راستای آموزش تکنولوژی های مختلف جاوا از قبیل Swing، JSF، EJB،JPA، و ... تهیه و ایجاد شده است

۵ مطلب با موضوع «آموزش JSF :: لایه Control» ثبت شده است

نحوه ارسال Message (یا یک کلاس Bean) در هنگام Redirect صفحات

همانطور که میدانید و قبلا نیز توضیح داده شد، هنگامی که برنامه Redirect میشود، تمامی آبجکت ها از بین رفته و نمیتوان به مقادیر آنها در سایر صفحات دسترسی پیدا نمود. به عنوان مثال فرض کنید کلاسی در حافظه RequestScoped طراحی کرده که دارای متدی بنام SaveCustomer می باشد. در این متد هنگامی که عملیات ثبت انجام میگردد، برنامه میبایست کاربر را به صفحه ای دیگر منتقل کرده و در آن صفحه پیغامی متناسب با شرایط به کاربر نمایش دهد. با توجه به توضیحات سایر بخشها این کار اصلا امکان پذیر نبوده زیرا که با Redirect شدن صفحه تمام مقادیر و همچنین پیغامهای تعریف شده از بین خواهد رفت. برای رفع این مشکل در JSF 2.0 آبجکتی بنام Flash طراحی شده که می تواند یک پیغام را در خود را نگهداری کرده و در یک صفحه جدید(فقط صفحه ای که برنامه به آن Redirect شده است) دیگر به کاربر نمایش دهد.

ادامه مطلب...
۲ نظر
مهدی قرمزکن

تزریق(استفاده) Managed Bean در یک کلاس Managed Bean دیگر

 

اگر میخواهید از یک Managed Bean در یک کلاس Bean دیگر(از نوع Managed Bean )استفاده نمایید باید از ManagedProperty@ استفاده نمایید. بهتر است نحوه استفاده از این Annotation را با یک مثال بیان کنیم.

فرض کنید میخواهید مشخصات کاربران خود را که یک کلاس Session Bean ذخیره شده است در یک کلاس از نوع ManagedBean استفاده نمایید. این کار را میتوانید همانند دستورات زیر انجام دهید:

ادامه مطلب...
۰ نظر
مهدی قرمزکن

معرفی Scope های مورد استفاده در ManagedBean@

JSF 2.0 بصورت پیش فرض دارای 6 ناحیه حافظه ایست که اصطلاحا به آنها Scope گفته میشود, که در زیر به معرفی آنها خواهیم پرداخت :

  • RequestScoped@

کلاس Bean تعریف شده در این ناحیه حافظه با اجرای یک درخواست HTTP ایجاد و هنگامی که نتیجه اجرای درخواست به کاربر ارسال شده و در مرورگر نمایش داده شد، از بین میرود(طول عمر کلاس های Bean در درخواست هایی که بصورت Ajax ارسال میشوند نیز به همین صورت میباشد). کتابخانه JSF برای دسترسی به کلاسهای Bean تعریف شده در این مدل حافظه ای از دو روش استفاده میکند :

  1. روش اول استفاده از آبجکت HttpServletRequest میباشد. در این حالت نام کلاس Bean به عنوان کلید در آبجکت HttpServletRequest در نظر گرفته میشود.

  2. روش دوم استفاده از آبجکت ExternalContext#getRequestMap میباشد.

از این Scope بهتر است در صفحاتی استفاده شود که از Ajax استفاده نکرده و نیازی به نگهداری مقادیر در درخواست های متوالی ارسال شده از سوی کاربر ندارند.

ادامه مطلب...
۲ نظر
مهدی قرمزکن

مقایسه JSF Bean , CDI Bean و EJB

از نگارش JavaEE 6.0 به بعد جهت اهداف مختلف و سبکهای متنوع برنامه نویسی کلاسهای Bean مختلفی تعریف و ایجاد شده است. که اغلب برنامه نویسان و طراحان وب آگاهی کافی در رابطه با این نوع کلاسها نداشته و نمیدانند چه زمانی باید از آنها استفاده نمایند. در این مقاله سعی خواهیم کرد تفاوت های آنها را با هم بیان نموده و در آخر تجربیات شخصی خود را در رابطه با این نوع از کلاسهای Bean برای شما بازگو خواهم کرد.

کتابخانه JSF بصورت پایه همراه با کلاسهای Bean از نوع ManagedBean طراحی شده و تکنولوژی جدیدتر CDI (Context Dependency Inject) از نگارش JSF 2.0 به بعد به هسته مرکزی JSF اضافه شده است. CDI را می توان جایگزینی جهت کلاسهای نوع EJB در نظر گرفت. البته نظر شخصی من در این رابطه با این مفهوم تفاوت دارد. بهتر است قبل از هرچیزی به بیان تفاوت های و ویژگی های این نوع کلاسها بپردازیم.

ادامه مطلب...
۴ نظر
مهدی قرمزکن

تعریف و ایجاد یک کلاس Bean جهت استفاده در صفحات JSF

مطابق با تعاریف JavaBean که در وب سایت (http://java.sun.com/products/javabeans) بیان شده است، یه کلاس Bean یا JavaBean یک کامپیوننت جاوا با قابلیت استفاده مجدد (Reuseable) بوده که میتوان آنها را در ابزارهای متعدد مورد استفاده قرارداد یا آنها را ویرایش نمود. این تعریف یک بیان زیبا از JavaBean میباشد.

با توجه به تعریف فوق، یک کلاس Bean یک کلاس معمولی جاوا میباشد. در JSF، کلاس های Bean وظیفه نگهداری داده های یک صفحه JSF را بر عهده دارند. در JSF به دو طریق می توان یک کلاس ساده جاوا را به یک کلاس Bean مرتبط با یک صفحه JSF تبدیل نمود.

ادامه مطلب...
۱ نظر
مهدی قرمزکن