چرا JQuery را به Ext JS ترجیح میدم

چند وقت پیش یکی از دوستان (آقای زنگنه) که الان مدیر پروژه شرکت ساختمان کالا هستن به من گفتن که از Ext JS تجربه خوبی ندارن و گفتن که این لایبراری سنگینه و یک کار ناموفق رو باهاش تجربه کردن.

فعلاً تصمیم گرفتم واسه طراحی UI از همون JQuery  استفاده کنم .

مگه میشه جواب نده آخه کلی قیمتشه . برنامه نویس های قدری پشتشن .

ولی فعلاً امکان تست این مساله وجود نداره از طرفی نمیتونم ریسک کنم .

jQuery چیست؟

سالهای متمادی، جاوااسکریپت به چندش معروف بود! چون هم یادگیریش سخت بود و منبع آموزشی خوب براش کم پیدا می شد، هم کاربرد قابل قبولی براش نبود و هم باعث مشکلات امنیتی میشد.

اما با گذشت زمان  و رونق گرفتن AJAXو بیشتر شدن ایده های سمت کلاینت و افزایش امنیت مرورگرها که به دلیل توسعه مرورگرها بود ، جاوااسکریپت خواهان بیشتری پیدا کرد.

توسعه مرورگرها رو مدیون اتحادهای ضد اینترنت اکسپلورر هستیم که بخاطر پدرسوختگی و دشمنی با مایکروسافت، فایرفاکس رو پایه گذاری کردند مثل اپل و گوگل و اوراکل و بقیه که باعث رشد و رقابتی شدن بازار مرورگرها رو شدند.

اما وقتی jQuery متولد شد، اوضاع کلی فرق کرد.

 jQuery گفت برای اعمال تغییر در اجزای صفحه با جاوااسکریپت، انیمیشن سازی و AJAX و غیره، نیازی به بلد بودن جاوااسکریپت نداری. من همه اش رو با یه سری توابع هلو شکل واست حل کردم اونم بصورتCross-Browser  یعنی در همه مرورگرها یه نتیجه داره!


چه حرف باحالی. ولی مگه میشه بدون بلد بودن یه زبان ازش استفاده کرد؟ راستش بله! کافیه کار با سینتکس خود jQuery رو یاد بگیریم و بعدش همه چی حله.

این یادگیری فقط سه چهار ساعت (حتی کمتر) طول میکشه.

منبع : boplo.ir

معرفی JSON و JSONP که چی هستند و به چه درد میخورند

محدودیتی در استفاده از AJAX وجود داره و اون عدم دسترسی به اطلاعاتی هست که از یک آدرس دیگه اومده. مثلا من میخوام در سایتم پیش بینی وضعیت آب و هوا رو از سایت یاهو بصورت AJAX داشته باشم. روشهایی برای این کار وجود داره ولی روش مستقیم ممکن نیست که من Request رو به سایت یاهو بفرستم و Response بگیرم. برای چنین استفاده هایی، JSONP معرفی شده.

JSONP مخفف JOSN with Padding یعنی استفاده از JSON با واسطه است (این ترجمه مفهومی اش هست نه لغوی) و در واقع یک حقه و ترفنده که با همکاری سایت مبدا و مقصد انجام میشه. به این ترتیب که مثلا من میخوام دمای تهران رو از سایت یاهو بگیرم که به شکل JSON این اطلاعات رو میده و سرور از JSONP پشتیبانی می کنه.

منبع : boplo.ir

Spring Web Flow چیست ؟

از Spring Web Flow برای پیاده سازی Work Flow استفاده میشود :

منبع : ttp://springinpractice.com

چگونه با استفاده از اسپرینگ به دیتا سورس های مختلف کانکت بشیم

در اکثر سازمانها که وارد می شویم باید دیتا را از بانک های اطلاعاتی مختلف استخراج کنیم و در برنامه جدیدی که ایجاد می کنیم از آنها استفاده کنیم تا دوباره مجبور نشویم موجودیت های قبلی را دوباره تعریف کنیم .

برای دریافت دیتا از منابع مختلف راه حل های زیر وجود دارد :

1.دریافت دیتا از وب سرویس

2.اتصال مستقیم به بانک های مختلف از داخل اپلیکیشن جدید

در این پست قصد دارم نحوه استفاده از روش دوم را با تصاویری که از کدهای مربوطه گرفته شده را بیان کنم . فرض کنید قصد داریم اپلیکیشنی مطابق تصویر زیر ایجاد کنیم .

 

- اگر بخواهیم بدون استفاده از اسپرینگ کار کنیم باید با استفاده از jdbc به بانک های مختلف وصل بشیم و نتایجی که از این لایه (بیزینس) برگردانده میشود را در لایه کنترل به لایه ویو (jsp) منتقل کنیم. تصویر

- کدهایی که در لینک قبل می بینید خوانایی لازم را ندارند و کانکشن استرینگ برنامه در داخل خود برنامه گنجانده شده است و این اصلاً خوب نیست چون اگه تنظیمات بانک اطلاعاتی عوض شد نمیتوانیم بصورت پارامتریک این تغییرات را به اپلیکشن منتقل کنیم.

- برای حل این مشکل میتونیم یه فایل کانفیگ درست میکنیم که کانکشن استرینگ های مختلف داخل این فایل کانفیگ قرار دارند و یا میتونیم طبق استانداردهای کد نویسی اسپرینگ از فایل jdbc.properties استفاده کنیم. تصویر

- فایل کانتکست فایلی است که در آن آبجکت های مورد نیاز برنامه همانند آبجکت دیتا سورس , آبجکت مدیر تراکنش ها قرار میگرند . بازای هر بانک اطلاعاتی باید آبجکت دیتا سورس و آبجکت مدیر تراکنش های مرتبط با آن را ایجاد کنیم. تصویر

- ساختار پروژه ای که در حال کار بر روی آن هستیم با استفاده از Maven ایجاد شده است و از فایل pom.xml برای مدیریت آن استفاده می کنیم. در این مثال در داخل پکیج org برنامه ای است که با استفاده از هایبرنیت ایجاد شده است و در پست های قبلی راجع به آن توضیح داده شد. در داخل پکیج com برنامه ای است که از jdbc استفاده می کند. تصویر

- لایه model شامل POJO های ساده می باشد که هیچگونه Annotation در آن استفاده نشده است. تصویر

- لایه dao برنامه از یک اینرفیس تشکیل شده است که در آن امضا متدهایی که قصد پیاده سازی آن را داریم آورده میشود. تصویر

- ما قصد داریم اینرفیس dao اپلیکیشن خود را با استفاده از jdbc پیاده سازی کنیم . این قسمت مهمترین قسمت برنامه است و فریم ورک اسپرینگ کمک زیادی برای پیاده سازی این کلاس به ما میکند. دقت کنید که چگونه آبجکت دیتا سورس را با استفاده از @Autowired و @Qualifire  مقداردهی می کنیم و پس از آن چگونه JdbcTemplate را مقداردهی می کنیم. تصویر

- آبجکت JdbcTemplate توسط فریم ورک اسپرینگ معرفی شده است و به ما این امکان را میدهد تا با کد خواناتری از بانک اطلاعاتی پرس و جو کنیم. تصویر

-برای استفاده از روش های دیگر پرس و جو با استفاده از jdbcTemplate از سایت Mkyong.com میتوانید استاده کنید.

- هدف از ایجاد لایه bo مدیریت تراکنش می باشد که از یک اینرفیس تشکیل شده است که دقیقاً یک کپی از اینترفیس لایه dao می باشد. تصویر

- دقت شود که در هنگام پیاده سازی متدهای لایه bo , قبل از هر متد از @Transactional بطور صحیح استفاده شود. تصویر

- در لایه کنترلر مشخص می کنیم با ارسال یک url جدید به سرور: چه پردازشهایی باید در سرور انجام شوند؟ چه آبجکتهایی به لایه ویو منتقل شوند؟ چه چیزی بعنوان خروجی به کاربر نمایش داده شود؟ تصویر

- در لایه ویو با استفاده از${Object}  به آبجکتها دسترسی داریم. تصویر

- با استفاده از ابزارهای تست testing و نوشتن متدهای تستی میتوانیم قسمتهای مختلف برنامه را تست کنیم. تصویر

لایه بندی های مختلف پروژه این امکان را به ما میدهند تا در صورت نیاز به ایجاد تغییرات در برنامه , این تغییرات فقط در یک لایه انجام شوند تا از انتشار تغییرات در همه سطوح برنامه جلوگیری شود و هزینه نگهداری برنامه کاهش یابد.

حجم سورس کد برنامه 218 کیلو بایت است که برای استفاده از آن باید idea و maven را در کامپیوتر خود نصب کرده باشید. دریافت سورس کد.

فکر کنم تا به حال درباره لایه بیزینس توضیحات کاملی داده شده است . در پست های بعدی سعی میکنم بیشتر درباره لایه ویو بنویسم.

لطفاً کتاب Pro Spring MVC with Web Flow را یک منبع کامل درباره Spring MVC می باشد و مطابق با آخرین نسخه (در حال حاضر نسخه 3.2) می باشد را بصورت رایگان دریافت کنید.

دریافت مستندات کد نویسی مبتنی بر j2ee

جهت دریافت مستندات کد نویسی مبتنی بر j2ee بر روی لینک زیر کلیک کنید : دریافت مستندات + عکس


و برای دیافت کد های مربوط به این پروژه از لینک زیر میتوانید استفاده کنید : دریافت سورس کد



مصاحبه در شرکت تولیدی پاکسان (سهامی عام)

شنبه مورخ 25/03/1392 رأس ساعت 9 صبح در شرکت تولیدی پاکسان (سهامی عام) باید در زمینه برنامه نویسی oracle و j2ee تست فنی بدم . آدرس وب سایت شرکت پاکسان اینه : http://paxan.info/ چیزی که واسه من جالب بود اینه که وب سایت شرکت رو با جاوا نوشتن .

رفتم آزادی سوار تاکسی های شماره 2 شدم. تاکسی های شماره 2 تاکسی هایی هستن که راننده دستش را در حالیکه عدد شماره 2 رو نشون میده از ماشین بیرون میاره.

موقعیت جغرافیایی شرکت اینه : کیلومتر 8 جاده قدیم کرج , انتهای بلوار گلها , 500 متر بسمت غرب , پایین تر از مجتمع صنعتی بهشهر. ولی فکر کنم دفعه دیگه اگه خواستم برم پاکسان , باید اول برم آزادی و از اونجا سوار تاکسی های تهرانسر بشم.

آقای آکار , مدیر ERP شرکت پاکسان هستن و گفتن که در حال حاضر از Oracle Business Suite استفاده میکنن.

آقای عبیدی , مدیر فنی پاکسان سوال کردن که واسه مدلسازی اپلیکیشن از چه ابزارهایی استفاده میکنی؟

من هم گفتم که طبق متدولوژی XP و Agile , کار تولید اپلیکیشن رو از کاربر نهایی شروع میکنم  و با ابزارهای مدلسازی نظیر PowerDesigner و یا RationalRose کار نکردم ولی خود IDEA ابزارهای گرافیکی جهت مدلسازی کلاسهای استفاده شده در برنامه در اختیار برنامه نویس قرار می دهد و در اپلیکیشنی که مبتنی بر MVC باشه لایه های زیر را پیاده سازی می کنیم : 1.لایه مدل 2.لایه دیتا اکسس 3.لایه بیزینس آبجکت 4.لایه کنترلر 5.لایه ولیدیشن 6.لایه نمایش (فایل های JSP و اسکریپت های jquery در این قسمت قرار میگیرند)

آقای دیگری هم تویه جلسه مصاحبه بودن که من اسم ایشون رو فراموش کردم و از من سوال کردن که هایبرنیت خوبه ولی معایبی هم داره , میتونی بگی اینجور مواقع چکار میکنیم ؟

من هم گفتم که باید با استفاده از JDBC مستقیماً به بانک اطلاعاتی وصل بشیم و علاوه بر اینکه میتونیم با SQL از بانک پرس و جو کنیم , میتونیم استورپروسیجر ها و پکیج های بانک اطلاعاتی رو فراخوانی کنیم.

Sencha Cmd - (سانچا)

اکثر برنامه نویس هایی که دارن واسه وب کد میزنن . فرقی نمیکنه asp.net و php و یا jsp . عادت دارن که واسه هر موجودیت جدید یه پیج جدید ایجاد کنن مثلاً واسه موجودیت پرسنل یه فرم پرسنلی درست میکنن . تازه بعضی ها واسه هر کدوم از عملیات CRUD یک پیج درست میکنن .

خیلی دوست داشتم بفهمم که مثلا سایت فیسبوک و یا توییتر چه جوری کار می کنن . یعنی چه جوری میشه همه چیز رو از داخل یک صفحه مدیریت کرد. از نظر من سایت فیسبوک یه نرم افزار پرسنلی خیلی خوبم هم هست.  وقتی با فریم ورک Ext JS آشنا شدم فهمیدم پشت پرده سایت فیسبوک یه فریم ورک جاوا اسکریپت قوی هست. در این پست نتیجه تحقیقاتم درباره یکی از ابزارهای کار با فریم Ext JS را مطرح میکنم.

 

Create & build Sencha ExtJS project using Sencha Cmd

In a typical Sencha ExtJS based enterprise project, we create various JS+CSS files and it becomes cumbersome to manage them during the development because they need to be listed in the proper order in the index.html file and for every addition of a file, we need to add it to the index.html, as well. After the development is done, we minify all the JS and CSS files to have better loading performance, and go back and modify the index.html file to use the minified files rather than individual files. After introduction of the new Class System in ExtJS this tedious task has been taken care by the framework and the developer is not required to do all that, anymore. This is a big relief. However, the new Class System expects a specific folder structure so that it can load the classes, dynamically, and is based on the MVC architecture. To make this managing of folder structure effortless and leverage the same for the minification, Sencha has provided a tool – Sencha Cmd. So, as long as you plan to use the MVC architecture offered by Sencha ExtJS, Sencha Cmd is a must tool to create, build and package your application.

مطابق متن بالا , Sencha Cmd یک ابزار ضروری برای تولید UI مبتنی بر فریم ورک Ext JS می باشد و در مراحل مختلف تولید UI به ما کمک میکنه :

بعنوان مثال با کمک دستور زیر میتوانیم یک پروژه جدید ایجاد کنیم که سایز پروژه ایی که ایجاد میشه بیش از 100 مگابایت می باشد:

sencha -sdk /path/to/ExtJssdkFolder generate app MyAppName /path/to/MyAppFolder

 

و با کمک دستور زیر میتونیم فایلهای Javascript رو فشرده کنیم و پروژه رو آماده تحویل (Deployment) نماییم که سایز پروژه ای که آماده تحویل میشه فقط 5 مگابایت می باشد :

sencha app build production

Sencha Cmd یه ابزاره که تویه همه سیستم عامل ها کار میکنه . برای نصبش تویه ویندوز :

1.باید JRE یا JDK  نسخه 6 به بالا در سیستمتون نصب باشه .

2.باید نسخه 1.8 و یا 1.9 Ruby در سیستم تون نصب باشه و مسیر روبی در Path ویندوزتون اضافه شده باشه.

3.باید نسخه 4 به بالاتر Ext JS بر روی سیستمتون موجود باشه .

4.البته نصب خود Sencha Cmd یک نکته کوچیک تویه ویندوز داره و اون اینه: یوزری که باهاش به ویندوز لاگین کردین نباید ادمین باشه تا بعداً وقتی دارین با Sencha Cmd کار میکنید به error بر نخورین . من خودم این مشکل رو در فروم سایت Sencha مطرح کردم و خودم هم راه حلش رو پیدا کردم و بهش جواب دادم.

بنظر من ایده تولید UI وب با استفاده از ابزارهای کامند (Command Tools) , خیلی جالبه . حتماً سعی کنید تستش کنید. ارزشش رو داره . جالبه بگم شرکت Sencha یک ابزار دیگه هم داره که اسمش هست Sencha Touch که مخصوص تولید UI وب در موبایل می باشد.

پیاده سازی MVC در سمت کلاینت با استفاده از ExtJS 4

همه میدونیم MVC چیه .

فریم ورک Struts از MVC استفاده میکنه.

فریم ورک Spring هم از MVC استفاده میکنه.

ASP.net هم از نسخه 4 به بعدش از MVC حمایت میکنه.

تکنولوژی ها بالا در سمت سرور هستن ولی امروز یک مثال تویه مستندات ExtJS 4.2 دیدم که خیلی جالب بود و می اومد MVC رو در سمت کلاینت پیاده سازی میکرد و ما رو از نوشتن کدهای اضافی راحت میکرد .

پس از دانلود کردن ExtJS 4.2 SDK  آن را در سرور آپاچی (xampp) نصب کنید. در فولدر examples/app/simple نمونه این کار را مشاهده می کنید.

Junit vs TestNG

هر دوتاشون ابزارهای تست نرم افزار در java هستن و idea های مهم مثل Eclipse و Idea ازشون حمایت میکنن .

اول Junit اومد و بعد همون تیمی که Junit رو نوشته بودن واسه اینکه نمیخواستن کارهای قبلی شون خراب بشه اومده و TestNG رو نوشتن . مشخصه که TestNG قابلیت های بیشتری داره و کامل تره .

نحوه کار اینجوریه که می آییم یک سری کلاس تست مینویسیم و داخل این کلاس ها متدهای تستی مینویسیم و واسه اینکه به کامپایلر بفهمانیم که این متد ها با متدهای معمولی فرق دارن باید قبل از متد @Test میزاریم .

حالا داخل متد یک سری توابع جالب داریم که می آن بررسی میکنن که آیا مثلاً مقدار یک متغیر Not Null شده و یا آیا مقدار متغیر True شده و ...

assertNotNULL

asserTrue

assertFalse

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

jqGrid چیست ؟

jqGrid یک پلاگین رایگان جاوا اسکریپته که با کمک لایبراری jQuery ایجاد شده است. این پلاگین این امکان رو به برنامه نویس میده تا بتونه گرید هایی با قابلیت های متنوع  و بطور سریع ایجاد کنه . چون در جاهای مختلفی ازش استفاده شده و افراد زیادی باهاش کار کردن کلی از باگ هاش برطرف شده و الان نسخه 4.5.2 در حال استفاده است. من اولین بار تویه وبلاگ آقای مارک سرانو باهاش آشنا شدم.

لینک ویکی مرتبط با این پلاگین: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs

لینک دموهای مرتبط با این پلاگین : http://www.trirand.com/blog/jqgrid/jqgrid.html

 آقای مارک سرانو یک برنامه نویس j2ee آمریکایی هستن که شعار وبلاگش اینه : freely you receive, freely you give فکر کنم منظورش اینه که همانطور که اطلاعاتت رو بطور رایگان در اختیار مردم میزاری به همون نسبت هم اطلاعات رایگان دریافت میکنی. البته این وبلگ فیلتره.

ExtJS 4 چیست ؟

ExtJS 4 یک لایبراری جاوا اسکریپت پولیه.کلی ویجت و پلاگین برای طراحی UI وب داره.

همانطور که در لینک زیر مشاهده میکنید از RTL بطور کامل پشتیبانی میکنه. البته این ویژگی از نسخه 4.2 بهش اظافه شده .

http://docs.sencha.com/extjs/4.2.0/extjs-build/examples/rtl/rtl.html?theme=classic

یکی از برنامه های خوبی که با این لایبراری ساخته شده Aero SQL می باشد که شبیهphpMyAdmin خودمونه که واسه مدیریت بانک MySQL ازش استفاده میشه.

چیزی که واقعا من رو مجذوب خودش کرد مستندات و فروم قوی این لایبراری میباشد که پس از دانلود کردن SDK در دسترس می باشد. یک پاراگراف در ابتدای مستندات هست که من دقیقاً همون رو اینجا کپی میکنم و بیان میکنه که فشارهایی که در ابتدای پروژه ایجاد میشه باعث میشه که ما بطور مهندسی و حساب شده عمل نکنیم و کدهایی از این ور و اون ور اینترنت جمع می کنیم و به پروژه مون اضافه میکنیم باعث میشه که در روزهای اول پروژه خوب جلو میریم ولی بعدا هزینه نگهداری سیستم افزایش پیدا میکنه.

The scalability, maintainability and flexibility of an application is mostly determined by the quality of the application’s architecture. Unfortunately, it’s often treated as an afterthought. Proofs of concept and prototypes turn into massive applications, and example code is copied and pasted into the foundations of many applications. You may be tempted to do this because of the quick progress that you see at the start of a project.

However, the time saved will be relatively low compared to the time spent on having to maintain, scale and often refactor your application later in the project. One way to better prepare for writing a solid architecture is to follow certain conventions and define application views, models, stores and controllers before actually implementing them. In this article, we’ll take a look at a popular application and discuss how we might architect the user interface to create a solid foundation.

نقش تگ ResponseBody@ در لایه کنترل اسپرینگ MVC چیه ؟

اگه سری به مستندات SpringMVC بزنید متوجه میشین که با کمترین هزینه میشه هر POJO ایی رو به JSON تبدیل کرد و مستقیماً به یک مرورگر در سمت کلاینت ارسال کرد.

در سمت کلاینت با استفاده از لایبراری جاواسکریپت مثل ExtJS و یا jqGrid میتوان اطلاعات دریافت شده از سمت سرور را که به فرمت JSON هستند را به شکلی زیبا به کاربر نشان داد.

در انتهای مقاله سایت java.dzone.com یک راهنمایی فلسفی کدنویسی هست که میگه :

"Starting from scratch" is seductive but disease ridden

فکر میکنم این راهنمایی واسه افرادی مثل من , که فقط دوست دارن کد بزنن , کاربر داشته باشه . فرض کن بخواهیم کارهای بالا رو بدون استفاده از فریم ورک انجام بدیم (گرفتن دیتا از بانک اطلاعاتی + تبدیل دیتا به فرمت JSON + نمایش آن در یک گرید). اگه فریم ورک نداشتیم اینقدر پیچیدگی زیاد میشد که کلاً بیخیال مسائل مربوط به performance میشدیم و میگفتیم این کارها نشدنیه ولی حالا چی ؟ حالا میتونیم اداعا کنیم که داریم بصورت واقعی معماری SOA را پیاده سازی میکنیم . چه جوری ؟ سرور فقط با دیتا درگیره و کلاینت با نمایش دیتا.

این تکنیک چون کارایی بالایی دارد نیاز شرکتهایی که تراکنش های زیادی دارند را به خوبی برطرف میکند. پیشنهاد میکنم مثال سایت java.dzone.com را حتما مطالعه کنید. عنوان این مقاله اینه :  ExtJS, Spring MVC 3 and Hibernate 3.5: CRUD DataGrid Example

مسولیت تبدیل POJO به JSON برعهده تگ @ResponseBody در لایه کنترل SpringMVC است. اما برای استفاده از این تگ باید شرایطش رو مهیا کنیم قدم اول اضافه کردن لایبراری Jackson به پروژه است که میتونیم با اضافه کردن dependency های زیر به فایل pom.xml این کار رو انجام بدیم :

ردیف

groupId

artifactId

version

type

scope

1

org.codehaus.jackson

jackson-jaxrs

1.6.3

Jar

Compile

2

org.codehaus.jackson

jackson-core-asl

1.6.3

jar

Compile

قدم دوم اینه که باید تویه فایل applicationContext.xml که فایل تنظیمات SpringMVC میباشد خط زیر را اضافه کنیم: mvc:annotation-driven

حال اگه یک متد شبیه متد زیر در لایه کنترل داشته باشیم :

    @RequestMapping(value = "/something", method = RequestMethod.GET)

    public @ResponseBody List helloWorld()  {

        List userList = new ArrayList();

 

        User user = new User();

        user.setId(Long.valueOf(1));

        user.setFirstName("1");

        userList.add(user);

 

        user = new User();

        user.setId(Long.valueOf(2));

        user.setFirstName("2");

        userList.add(user);

 

        return userList;

    }

و در browser آدرس زیر را وارد کنیم :

خروجی زیر که به فرمت JSON می باشد در کلاینت دریافت میشود :

[{"id":1,"firstName":"1","lastName":null},{"id":2,"firstName":"2","lastName":null}]

برای آشنایی بیشتر با SpringMVC مثالهای سایت Java Code Geeks را حتماً مطالعه نمایید .

jqGrid , SpringMVC integration by : Mark Serano

Mark Serano has two good tutorials about integration spring with jqGrid . They are the best tutorial that I have ever seen.

The first one is simpler and it uses an array list for its persistence layer:

krams::: jqGrid and Spring 3 MVC Integration Tutorial

download code

The second one is a more sophisticated and it uses Spring Data to implement DAO classes faster and it implements pagination feature effectively.

krams::: Spring MVC 3.1, jqGrid, and Spring Data JPA Integration Guide  

download code

Following is the code analysis of the first tutorial; you can click on each links in table below to view code.

The main idea of both tutorials is to convert data to JSON and then in the client we uses jqGrid component to show them in a nice grid.

1

Output

What see user

 

 

What happens in background (we can use RESTClient utility to test what happen in the background)

2

Model

Simple POJO class

3

Service

Interface  

 

 

Implementation : part.1 , part.2 , part.3

4

Configuration

web.xm

 

 

spring-servlet.xml

 

 

applicationContext.xml

5

JSON

Users (java class)

 

 

Messages (java class)

6

Controller

Controller  :: Main

 

 

Controller  :: List

 

 

Controller  :: Edit

 

 

Controller  :: Add

 

 

Controller  :: Delete

7

View

Users.jsp

 

 

JQuery :: List : part.1 , part.2 , part.3

 

 

JQuery :: Edit

 

 

JQuery :: Add

 

 

JQuery :: Delete

 

RESTClient is a simple Desktop application for talking to RESTful web services. You can download this utility from this link: REST Client

Especial Thanks to Mark Serano