اگه سری به مستندات 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 را حتماً مطالعه نمایید .