জেএসএফের কী প্রয়োজন, যখন ইউআই জাভাস্ক্রিপ্ট লাইব্রেরি যেমন জিকুয়েরি এবং অ্যাঙ্গুলারজেএস দিয়ে অর্জন করা যায়


116

আমি জেএসএফ সম্পর্কে পড়ছিলাম যে এটির একটি ইউআই কাঠামো এবং কিছু ইউআই উপাদান সরবরাহ করে। তবে কীভাবে এটি jQueryUI, AngularJS, ExtJS, বা এমনকি সরল এইচটিএমএল, সিএসএস এবং জাভাস্ক্রিপ্ট থেকে উপলব্ধ উপাদানগুলির সংখ্যার থেকে আলাদা বা আলাদা is

কেন কেউ জেএসএফ শিখতে হবে?


3
সার্ভার-উত্পন্ন এইচটিএমএল এর সুবিধা: অনুসন্ধান ইঞ্জিন অনুসন্ধানযোগ্যতা, অনুমোদনের ভিত্তিতে ভিউগুলি লুকান। অন্যথায়, আমরা খাঁটি এজাক্স ইউআইয়ের জন্য এটি পরিত্যাগ করেছি।
নীল ম্যাকগুইগান

5
আমি AngularJS + RESTful ব্যাকএন্ডের পক্ষেও জেএসএফ ত্যাগ করেছি। (আপেল এবং কমলা, তবে কৌণিক এত সুন্দর আমার
জেএসএফের

জেএসএফ হ'ল একটি উপাদান ভিত্তিক এমভিসি কাঠামো যা সার্লেলেট এপিআইয়ের শীর্ষে নির্মিত, এবং ট্যাগলিবগুলির মাধ্যমে উপাদান সরবরাহ করে যা জেএসপি বা অন্য কোনও জাভা ভিত্তিক ভিউ প্রযুক্তি যেমন ফেসলেটগুলিতে ব্যবহার করা যেতে পারে।
দিব্যেশ কানজারিয়া

উত্তর:


154

জেএসএফ থেকে সরল জেএসপি / সার্লেট / এইচটিএমএল / সিএসএস / জেএস, প্লেইন জেএস-এর মতো জিকুয়ের মতো: কম কোড দিয়ে আরও কিছু করুন। নিতে PrimeFaces (jQuery এর + + jQuery এর UI 'তে ভিত্তি করে) একটি উদাহরণ হিসাবে, তার মাধ্যমে ব্রাউজ করুন শোকেস সম্পূর্ণ কোড উদাহরণ দেখুন। BootsFaces (jQuery এর + + বুটস্ট্র্যাপ UI 'তে ভিত্তি করে) একটি হয়েছে শোকেস সম্পূর্ণ কোড উদাহরণ। আপনি যদি সেই উদাহরণগুলি ঘনিষ্ঠভাবে অধ্যয়ন করেন, তবে আপনি দেখতে পাবেন যে আপনাকে মূলত মডেল হিসাবে একটি সাধারণ জাভাবিয়ান ক্লাস এবং ভিউ হিসাবে একটি এক্সএইচটিএমএল ফাইলের প্রয়োজন।

নোট করুন যে আপনি জেএসএফকে একা এইচটিএমএল / সিএসএস / জেএস প্রতিস্থাপন হিসাবে দেখতে পাচ্ছেন না, আপনার সার্ভারের অংশটিও অ্যাকাউন্টে নেওয়া উচিত (বিশেষত: জেএসপি / সার্লেট)। জেএসএফ এইচটিটিপি রিকোয়েস্ট প্যারামিটার সংগ্রহ করার, সেগুলিকে রূপান্তর / বৈধকরণের, মডেল মানগুলি আপডেট করার, ব্যবসায়ের জিনিসগুলি করার জন্য সঠিক জাভা পদ্ধতিটি সম্পাদন এবং এইচটিএমএল / সিএসএস / জেএস বয়লারপ্লেট কোড উত্পন্ন করার সমস্ত বয়লারপ্লেটের প্রয়োজনীয়তা সরিয়ে দেয়। জেএসএফের সাহায্যে আপনি ভিউ সংজ্ঞা হিসাবে একটি এক্সএইচটিএমএল পৃষ্ঠা এবং মডেল সংজ্ঞা হিসাবে জাভাবিয়ান শ্রেণি দিয়ে শেষ করেন। এটি ব্যাপকভাবে বিকাশের গতি বাড়ায়।

প্রতিটি উপাদান ভিত্তিক ওয়েব এমভিসি ফ্রেমওয়ার্কের মতো, আপনি জেএসএফ-র রেন্ডার এইচটিএমএল / সিএসএস / জেএসের উপর কম সূক্ষ্ম নিয়ন্ত্রণ রাখবেন। কাস্টম জেএস কোড যুক্ত করা এত সহজ নয় যেহেতু আপনাকে জেএসএফ ভিউ স্টেটটি সার্ভারের পাশের অ্যাকাউন্টেও গ্রহণ করতে হবে (যেমন, জেএস সাইডে একটি অক্ষম বোতামটি সক্ষম করা জেএসএফ পাশের বোতামটি সক্ষম করবে না, যা পরিবর্তিত হয়) বিশাল সুরক্ষার সুবিধা)। যদি তা তবে একটি বড় শোস্টোপার হয় তবে তার পরিবর্তে স্প্রিং এমভিসির মতো অ্যাকশন ভিত্তিক ওয়েব এমভিসি ফ্রেমওয়ার্কটি সন্ধান করুন । আপনি শুধুমাত্র একাউন্টে নেব সব লিখতে যে এইচটিএমএল / সিএসএস / জেএস কোড আছে যে (এবং পদ্ধতি এটা XSS, CSRF এবং বিরুদ্ধে প্রতিরোধ করে DOM-ম্যানিপুলেশন!) নিজেকে । এছাড়াও আপনি ফেসলেট থেকে জেএসপিতে পিছিয়ে পড়লে আপনি উন্নত টেম্প্লেটিং ক্ষমতাও মিস করবেন।

অন্যদিকে, আপনার কাছে যদি একটি বড় জেএসপি / সার্লেট / এইচটিএমএল / সিএসএস / জেএস / জিকিউরি ভিত্তিক ওয়েবসাইট থাকে এবং আপনি পুনরাবৃত্তিযোগ্য জেএসপি / সার্লেট / এইচটিএমএল / সিএসএস / জেএস / জিকুয়ের বয়লারপ্লেট কোডটিকে পুনঃব্যবহারযোগ্য উপাদানগুলিতে সংশোধন করতে চান সমাধানগুলির মধ্যে একটি হ'ল জেএসএফ। কাস্টম টেম্পলেট, ট্যাগফাইল এবং উপাদানগুলি এতে সহায়তা করতে পারে। সেই দৃষ্টিকোণে, জেএসএফ জেএসপি / সার্লেট / এইচটিএমএল / সিএসএস / জেএস / জিকুয়েরির উপরে দাঁড়িয়েছে (এবং এ কারণেই জেএসএফের মধ্যে ডুব দেওয়ার আগে এই বেসিকগুলি বোঝা বেশ গুরুত্বপূর্ণ)।

আপনি এখানে একটি বাস্তব বিশ্বের কিকঅফ জেএসএফ ভিত্তিক প্রকল্পটি পেতে পারেন: জাভা ইই কিকোফ অ্যাপ । আপনি দেখতে পাবেন এটিতে ভাল HTML5 , CSS3 এবং jQuery হিসাবে জেএসএফের পাশে রয়েছে ।

আরো দেখুন:


15
কম কোড সহ আরও কিছু করবেন? তবে আরও এক্সএমএল দিয়ে ... কী ট্রেড অফ ... অতিরিক্ত, এটি আপনাকে নমনীয়তা
ছিনিয়ে নিয়েছে

33
জেএসএফ ২.০+ তে, এক্সএমএল প্রয়োজন হয় না।
ক্যাগাটে সিভিসি

5
আমাদের জেএসএফ ২.০
টেম্পে

1
দেখে মনে হচ্ছে যে জেএসএফ-এর সাথে ব্যবসায় / নিয়ন্ত্রণকারী স্তর এবং দৃশ্যের মধ্যে সুস্পষ্ট রূপরেখা নেই, যতটা ভিউ সার্ভারে তৈরি হয়েছে। আমি বুঝতে পারি যে ব্রাউজারে প্রেরণের আগে সার্ভারে সবকিছু সংকলিত হয়ে যায়, তবে আমি আমার জাভা অবজেক্ট রিটার্নিং ডেটা পছন্দ করি যা ভিউ রেন্ডার করে, রেন্ডারিং লজিক / ডেটা প্রেরণের পরিবর্তে।
রিক

1
এইচটিএমএল-এর শক্তিশালী নিয়ন্ত্রণ সহ জেএসএফ হ'ল সার্ভার সাইড জিনিস agree
সমতুল্য_বোন_জানা_আলোন

28

জেএসএফ এটি তৈরির জন্য তৈরি করা হয়েছিল যাতে জাভা শপগুলিকে jQuery এর মতো জিনিসগুলি শিখতে এবং জটিল জেএস তৈরি করতে না হয় তবে পরিবর্তে খাঁটি জাভা স্ট্যাকের দিকে মনোনিবেশ করতে হয়। এমন একটি পৃথিবীতে যেখানে সময় অর্থ এবং প্রচুর জায়গাগুলি ইতিমধ্যে জাভা বিকাশের দিকে মনোনিবেশ করে, স্ট্যাকের একটি কম ভাষা / টুকরো প্রশিক্ষণ এবং দ্রুত বজায় রাখা এবং এইভাবে সস্তায় তোলে।

আমি যুক্ত করব যে জাভাস্ক্রিপ্টটি বড় দলগুলিতে রক্ষণাবেক্ষণের দুঃস্বপ্নে পরিণত হওয়া সহজ, বিশেষত যদি প্রকল্পের কিছু বিকাশকারী অত্যন্ত ওয়েব বুদ্ধিমান না হন।


সুতরাং যদি জিকুয়েরি জেএস ইত্যাদিতে বেশ স্বাচ্ছন্দ্য বোধ করি তবে আমার জেএসএফ-এ মনোনিবেশ করার দরকার নেই?
সুশীল ভরওয়ানি

2
আপনি যে সমস্যার সমাধান করতে চাইছেন এবং কোন টিম দিয়ে আপনি এটি সমাধান করছেন তার উপর এটি নির্ভর করে।
অ্যান্ড্রু হোয়াইট

1
আমি দলে একমত, তবে জেএসএফ কী কী সমস্যা সমাধান করতে পারে এবং js jQuery ইত্যাদি কী পারে না তা শিখতে আগ্রহী। কেবল জেএসএফ শিখতে প্রেরণা গঠনের চেষ্টা করছি।
সুশীল ভরওয়ানি

1
কোনওটি নয়, এটি একই সমস্যাগুলি সমাধান করার জন্য কেবল একটি ভিন্ন উপায় সরবরাহ করে।
অ্যান্ড্রু হোয়াইট

8
আপনি যদি জিকুয়ের সাথে সত্যিই স্বাচ্ছন্দ্য বোধ করেন তবে জেএসএফ এখনও সত্যই কার্যকর। এটি ক্লায়েন্টের পক্ষের উপস্থাপনাগুলিতে সার্ভার সাইড কোডটি সংযুক্ত করার একটি সহজ উপায় সরবরাহ করে। কিছু ফেসলেটস 'সম্মিলিত উপাদানগুলি' এইচটিএমএল এবং জেএস (জিকুয়েরি সহ) এর চারপাশে কেবল একটি বরং পাতলা মোড়ক। এগুলি নির্মাণের বাতাস এবং সাধারণভাবে পুরো ক্লায়েন্ট-সার্ভারের পাশের সংযোগের পথটিকে আরও সহজ করে তোলে।
আরজান তিজমস

23

জাভাস্ক্রিপ্ট এবং ফ্রেমওয়ার্ক যেমন jQuery এর সাথে আপনার সম্পূর্ণ নমনীয়তা এবং পূর্ণ নিয়ন্ত্রণ রয়েছে। এক্স এর ইত্যাদির সাহায্যে আপনি অনেক নিয়ন্ত্রণ হারাবেন এবং অবশ্যই ফ্রেমওয়ার্কের সাথে মানিয়ে নিতে পারেন। জেএসএফের সাহায্যে আপনি সম্পূর্ণ নিয়ন্ত্রণ হারিয়ে ফেলেন এবং অবশ্যই কাঠামোর সাথে পুরোপুরি মানিয়ে নিতে পারেন। আপনাকে লাইফসাইকেল ইত্যাদিতে আহ্বান জানানো হয়েছে এবং সার্ভারে কল করা যাবে এবং কোথায় হবে না শেষ পর্যন্ত আপনার কোনও নিয়ন্ত্রণ নেই। আপনি যদি 'বিশেষ' হিসাবে বিবেচিত কিছু করেন তবে আপনি খুব শক্ত অবস্থানে আছেন। এবং জেএসএফ বিশ্বে এমনকি মাল্টিকোলোম টেবিল সাজানোর মতো ক্ষেত্র বা ক্ষেত্র যেখানে আপনি কেবলমাত্র সীমিত অক্ষরের সেট সেট করতে পারেন (যেমন নম্বর ক্ষেত্র) 'বিশেষ' হিসাবে বিবেচিত হয়।

তবে আপনার যত বেশি নমনীয়তা তত ত্রুটি বা খারাপ অভ্যাস আপনি করতে পারবেন। উচ্চ নমনীয়তা কেবলমাত্র উচ্চ বুদ্ধিমান প্রোগ্রামারদের সাথেই কাজ করে, অন্যরা প্রকল্পটিকে নিয়ন্ত্রণহীন দুঃস্বপ্নে পরিণত করবে।

তবে, জেএসএফ এবং এর সীমিত নমনীয়তার সাথে, কিছু করার জন্য সর্বদা কয়েকটি (বা এমনকি একটি মাত্র) সঠিক উপায় রয়েছে। আপনি খুব সীমাবদ্ধ, আপনি শর্টকাট তৈরি করতে পারবেন না, আপনাকে আরও এক্সএমএল ইত্যাদি লিখতে হবে - তবে মানের সাথে খাপ খোলার সময়, অভিজ্ঞতার বা কম দক্ষ প্রোগ্রামাররা যে কোডটি তৈরি করবে তার কোডের উপর আরও ভাল নিয়ন্ত্রণ রয়েছে। ফলস্বরূপ, বড় কর্পোরেশনগুলি জেএসএফকে ভালবাসে কারণ এটি তাদের জন্য 'নিরাপদ'।

আমি যখন জিডব্লিউটি থেকে জেএসএফ-এ চলে এসেছি, তখন আমি হতবাক হয়ে গিয়েছিলাম, কতটা জিনিস আমার কাছে স্বাভাবিক ছিল, তা অত্যন্ত অযৌক্তিক বলে বিবেচিত হত এবং কত সহজ জিনিস অর্জন করা এত কঠিন ছিল। আরও কী, এমনকি ক্ষুদ্রতম পরিবর্তনগুলি করা, যেমন লেবেলের পরে ':' চিহ্ন যোগ করা, যা জিডব্লিউটি / জিকুয়ারি চালিত অ্যাপ্লিকেশনটিতে একটি ফাংশন উত্পন্ন লেবেল পরিবর্তন করা হবে, স্থানীয় বৈশিষ্ট্যযুক্ত কয়েক ডজন ফাইল পরিবর্তন করা দরকার যা এমনকি এটি বিবেচনাও করা হয়নি আমার ছাড়া আর কেউ অদ্ভুত ...


7
প্রাইমফ্রিজগুলি jQuery ভিত্তিক যা আপনার ক্লায়েন্টের পক্ষে প্রচুর নমনীয়তা রয়েছে, এছাড়াও প্রাইমফ্রিজ উপাদানগুলি ক্লায়েন্ট এবং সার্ভার সাইডে কাস্টমাইজ করার জন্য ইভেন্ট কলব্যাক হিসাবে অনেকগুলি হুক সরবরাহ করে। জাভাস্ক্রিপ্ট এপিআইগুলি কাস্টমাইজড চেহারার জন্য ওভাররাইড এবং সিএসএসও হতে পারে। : আরও বেশি jQuery বান্ধব চরিত্রের জন্য লেবেলটি ওয়েব.এক্সএমএলে বিশ্বব্যাপী কনফিগার করা যেতে পারে।
ক্যাগাটে সিভিসি

1
একমত। সাধারণ নিয়মটি হল: কোনও ফ্রেমওয়ার্ক ব্যবহারের জন্য উন্নত জাভাস্ক্রিপ্ট প্রোগ্রামিংয়ের প্রয়োজন নেই এবং এটি বজায় রাখা শক্ত হবে তবে উল্লেখযোগ্যভাবে বৃহত্তর শক্তি এবং জটিলতার অনুমতি দেয়, যখন ফ্রেমওয়ার্কগুলিতে নির্ভরতা তৈরি করা এবং বজায় রাখা সহজ হবে তবে অ্যাপ্লিকেশনটির সম্ভাব্য ক্ষমতা সীমাবদ্ধ করবে।
কেটিস

10

জেএসএফ ব্যবহারের সুবিধাগুলি কেবল এক্সএইচটিএমএল + সিএসএস + জেএস উত্পন্ন করার ক্ষেত্রে নয়। কখনও কখনও জেএসএফ আপনি যে উপাদান তৈরি করতে পারেন তার উপর যেমন কোনও উপাদান ভিত্তিক কাঠামোর মতো একটি বিধিনিষেধ আরোপ করে। তবে জেএসএফ কেবল এটির জন্য নয়, এর লাইফসাইল গ্রিটালি সহায়তা করে। ইনপুটটিকে বৈধতা দেওয়ার পরে এটি কোনও প্রকার প্রচেষ্টা ছাড়াই মডেলটি আপডেট করতে পারে এবং আপনার সার্ভারের সিমের সিঙ্কগুলি সিঙ্ক করতে পারে। আপনি কেবল "" ব্যবহারকারী এখানে যা কিছু টাইপ করুন, এটি একটি সংখ্যা কিনা তা যাচাই করুন, যদি হ্যাঁ তবে এটি YY সম্পত্তি অবজেক্টে সংরক্ষণ করুন "এবং জেএসএফ এগুলি করবে।

সুতরাং হ্যাঁ, আপনি এখনও জিকুয়ারি, জেএস ইত্যাদি ব্যবহার করতে পারেন তবে সার্ভার সাইড কোড লেখার ক্ষেত্রে জেএসএফ অনেক সুবিধা দেয় এবং আপনাকে প্রচুর বয়লার প্লেট থেকে বাঁচায়।


9

আমি দৃ strongly়ভাবে একমত নই যে জেএসএফ যে কোনও কিছু যুক্ত করে। এটি কেবল ওভারহেড যুক্ত করে। সার্ভারে ইউআই স্টাফ করা এখন পর্যন্ত সবচেয়ে হাস্যকর বিষয়। এবং বড় দলগুলিতে জাভাস্ক্রিপ্ট দুর্দান্ত কাজ করে - যাকে বলা হয় পুনরায় ব্যবহারের কোড।

কিছু jsp ট্যাগগুলিতে jqueryটি কেবল জড়ান, আপনার প্রয়োজনীয় এবং আপনার কাজটি সম্পন্ন করুন এবং জেএসএফ এবং সমৃদ্ধ পৃষ্ঠাসমূহের সাথে শ্যাকলস এবং স্কেলিবিলিটি বিষয়গুলি সহ্য করবেন না।


14
জেএসএফ ফর্ম ভিত্তিক অ্যাপ্লিকেশনগুলির দিকে প্রস্তুত। jQuery দুর্দান্ত (হেক, প্রচুর জনপ্রিয় জেএসএফ উপাদান লাইব্রেরি যেমন প্রাইমফ্রিজস, রিচফ্রিজস এবং আইসফ্রিজ এমনকি কভারগুলির নীচে এটি ব্যবহার করে), তবে jQuery কোনওভাবেই সার্ভারের পাশের প্রসেসিং ফর্মটি সহজতর করে না। সাধারণ জেএসপি / সার্লেট ব্যবহারের ফলে কেবলমাত্র ভয়াবহ বয়লারপ্লেট কোডই আসবে। আবার, জেএসএফ কেবল এইচটিএমএল / সিএসএস / জেএস নয়, জেএসপি / সার্লেটও রয়েছে।
বালুসসি

2
আমি মনে করি আপনি যদি জেএসএফ এবং সাধারণভাবে একটি জেএসএফ পৃষ্ঠার জীবনচক্রের বিষয়ে আরও পড়েন তবে আপনি আপনার মতামত পরিবর্তন করতে পারেন। আবার, আপনি নাও করতে পারেন।
আহমেদ আনোয়ার

5

জেএসএফ, স্প্রিং এমভিসি, স্ট্রুটস, গ্রিলস, জ্যাকিউয়ারি এবং এক্সট্রিজের সাথে কাজ করার পরে আমার অভিমত গ্রিল + এক্সট্রিজএস একটি শক্তিশালী সমন্বয়।

আমি যে কোনও দিন জেএসএফের উপরে গ্রিলস তুলি। আমি ক্লায়েন্টের পাশের কাঠামো এবং লাইব্রেরি হিসাবে এক্সট্রিজের সম্পূর্ণতা পছন্দ করি তবে এটি জিকুয়েরির চেয়ে স্টিপার লার্নিং বক্ররেখা নিয়ে আসে।


3

এখানে jQuery এবং JSF এর মধ্যে সবচেয়ে বড় পার্থক্য রয়েছে:

  • কোনও এমভিসি আর্কিটেকচার নেই
  • রাষ্ট্রীয় নিয়ন্ত্রণ নেই (সেশন বা কথোপকথনে স্টোরের তারিখ, স্বয়ংক্রিয়-পরিষ্কার ইত্যাদি)
  • কোন (ডিফল্ট) বৈধতা পাঠাগার
  • কোনও টেম্প্লেটিং লাইব্রেরি নেই
  • কোনও উন্নত নেভিগেশন / রাউটিং নেই
  • মক্কেলের পক্ষে

jQuery একটি সম্পূর্ণ স্ট্যাক ওয়েব ফ্রেমওয়ার্ক হিসাবে ব্যবহার করার ইচ্ছা ছিল না। এটি নিম্ন-স্তরের জেএস কোডটি প্রতিস্থাপনের জন্য আরও লক্ষ্যযুক্ত ছিল যাতে কোডের কম লাইনে জেএস লেখা সহজ এবং আরও পাওয়ারফুল হয়।

এবং এটি সাধারণত HTML উপাদানগুলিতে আচরণ যুক্ত করতে ব্যবহার করা উচিত on


2

একটি বৃহত ওয়েব অ্যাপ্লিকেশনের জন্য এক্সটجيএস কাঠামো ব্যবহার করা, আমি জানি এটি ব্যবহার করা কত সহজ। এক্সজেসি (শেনা) এমভিসি আর্কিটেকচারে (ওরাকল 11 গ্রাম) ডাটাবেস ইন্টারঅ্যাকশনগুলির জন্য সবচেয়ে উপযুক্ত। দর্শনটি ভিজ্যুয়াল / ব্যবহারকারী ইন্টারঅ্যাকশনের জন্য ছিল। কন্ট্রোলারটি 'প্রসেসিং' এবং ট্রিগারগুলি নির্দিষ্ট করে যেগুলি PLSQL প্যাকেজগুলি (CRUD, এসকিউএল নির্বাচনের অনুসন্ধানগুলি ইত্যাদির জন্য API) গঠন করে। মডেল এবং স্টোর ফাইলগুলি ভিউয়ার / ইনপুটগুলিতে ডেটা আইটেমগুলি 'ম্যাপ' করতে ব্যবহৃত হত।

ExtJS অ ডাটাবেস নিবিড় ওয়েব ইন্টারফেসের জন্য উপযুক্ত নয় - যেখানে কৌণিক জেএস আরও ভাল ফিট হতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.