هل هناك أي وسيلة عرض متكامل بقوة الأخرى طبقة أخرى من JSF / JSP للجافا EE؟

StackOverflow https://stackoverflow.com/questions/296325

سؤال

وأنا تدريس جافا EE في الجامعة، وكان هذا السؤال سأل طالب. قلت "لا"، ولكن لم أكن متأكدا حقا، حتى ظننت أنني قد يطلب منك المطورين الأقوياء. :)

وأساسا، ما أود القيام به هو استخدام الكيانات لو كانوا في بلدي السياق: حاصل القط، وواضعي، الخ، لذلك مثل POJOs العادية. إذا كنت تستخدم EJB باستخدام inferface بها عن بعد، والكيانات يحصل تنفصل عن البنية التحتية الأساسية، ذلك أن عدم الذهاب.

وفكرت في كتابة طبقة مثل هذا في أطروحتي ماجستير. إذا كانت فكرة ميتة، لا تتردد ليقول لي. إذا لم تكن كذلك، قل لي إذا كنت تريد واحدة.

وأو إذا كان هناك مثل هذه الأداة هناك، واسمحوا لي أن أعرف!

هل كانت مفيدة؟

المحلول

في عالم حديث تطبيقات Java EE الأساسي، ما تم كسرها في مختلف الطبقات، حيث لديك 4 طبقات الأساسية

+--------------------+
|   Presentation     |
+--------------------+
| Controller/Actions |
+--------------------+
| Business Delegate  |
|     (Service)      |
+--------------------+
|  Data Access Layer |
+--------------------+
|      Database      |
+--------------------+

وينبغي تقسيم التطبيقات الخاصة بك في هذه الطبقة من البداية، بحيث يمكنك في أي لحظة معينة من الزمن استبدال أي طبقة دون إحداث أي من انها الأخوة طبقة.

وعلى سبيل المثال إذا كنت تستخدم JDBC للطبقة الوصول إلى البيانات، يجب أن تكون قادرا على استبدالها السبات دون التأثير على عمل أو مندوب طبقة قاعدة البيانات. الاستفادة من استخدام هذا الهيكل هو السماح بالتعاون مع تقنيات متعددة. كنت مندوب الأعمال (طبقة الخدمة) يجب أن يكون قادرا على التحدث مع خدمة الويب ومعالجة معالجة الطلب دون حتى الذهاب إلى المتصفح!

وفيما يتعلق باستخدام JSP كطبقة العرض، وهناك غيرها من التكنولوجيات المتاحة مثل، سرعة ، <أ href ل = "http://freemarker.sourceforge.net/" يختلط = "نوفولو noreferrer"> freemarker ، كما iberck المذكورة أعلاه، لديها نسيج كما انها جعل المحرك الخاص. يمكنك استخدام XML + XSLT أيضا لتقديم واجهة المستخدم. هناك واجهة مستخدم إدارة التطبيقات المتاحة أيضا مثل بلاط و <لأ href = "HTTP: //www.opensymphony. كوم / sitemesh / "يختلط =" نوفولو noreferrer "> sitemesh ، التي تساعد على دمج التكنولوجية المختلفة ومكونات مختلفة من الصفحة، وتبين لهم واحد.

ويمكنك أيضا استخدام مكونات سوينغ الوزن الخفيف بالهراوات مع <لأ href = "http://java.sun.com/javase/technologies/desktop/javawebstart/1.2/docs/developersguide.html" يختلط = "نوفولو noreferrer" > JNLP و تطوير تطبيق المشاريع نمط سطح المكتب. كل ما نحتاج إليه هو الخيال والعميل الصغير شرط ويمكننا استخدام أي شيء حرفيا كما طبقة العرض.

نصائح أخرى

ولقد حاولت ذلك أبدا، ولكن يفترض JSF للعمل بشكل أفضل مع Facelets من مع JSP.

مقال حول هذا الموضوع.

وآه. يبدو أنك لم تحصل على سؤالي الحق:)

والفول هناك لتقديم الخدمات داخل التطبيق. دعونا نقول أود أن تطوير تطبيق جافا مستقل مع واجهة المستخدم الرسومية سوينغ، ومنذ ذلك تطبيق أود أن استخدام الكيانات الحاضرة في نطاق التطبيق جافا ه ه ل.

وهذا هو ما كنت ترغب في أن بسلاسة: إنشاء كيانات تعديلها، حذفها بطريقة بديهية، دون أي اهتمام حول مشاكل EntityManager-مفرزة (إذا كنت استدعاء EJB عن بعد وأنه يمر يعود كائن الكيان، فإنه سيتم فصل قبل العودة).

وأنا لا أريد أن تطوير تطبيق ويب. JSF / JSP ويتكامل بشدة مثل، ولكن في كثير من البيئات تطبيق عميل مستقل ستكون أفضل. :)

ورؤية تعليقك في الوسط، أرى أن كنت ترغب في إطار سطح المكتب على جافا EE.

والجواب هنا هو أن JSF يعمل على المعهد بريمج. وبالتأكيد لشبكة الإنترنت، ولكن انتظر، لا يزال بإمكانك تضمين هر أو رصيف في التطبيق الخاص بك!

والاحتمالات لا حصر لها جدا من ذلك بكثير، إذا تم تعريف طبقة رجال الأعمال بشكل جيد، فقط بناء طبقة البديل الذي يدعو ظائف عملك.

وأيضا، جافا EE هو API، وبعض أجزاء يمكن استبدالها، أو يمكنك استخدام سوى جزء منه. الحاوية هي في معظمها للتعامل مع EJB، سيرفلتس JNDI وغيرها من الاشياء الصغيرة. كل هذا يمكن استخدامها من قبل تطبيقات سطح المكتب أيضا.

وهكذا كان الجواب يعتمد على هدف محدد والتصميم الفعلي / تنفيذ التطبيق.

إطار الربيع . يوفر ربيع الدعم الخاص للربط الأشياء كيان لرأي ويعالج الحصول على / وضع لك بمجرد السلكية عنه. هناك العديد من وحدات الربيع لانتقاء واختيار من بينها. الربيع MVC والربيع Webflow كلاهما تستحق التدقيق بها. ربيع MVC (IMO) هو أبسط لتبدأ، ولكن Sring Webflow يسمح للملاحة أكثر تعقيدا والمزيد من الخيارات نطاق (على سبيل المثال: نطاق التدفق). إذا كنت تبحث عن كتاب الربيع في العمل عبارة النسب. هناك بعض المفاهيم التي سوف تحتاج إلى معالجة (مثل الاعتماد على حقن) من أجل استخدام الربيع لكنها تستحق ذلك الوقت.

وثمة بديل آخر هو Tapestry5 الإطار. نسيج هو إطار مفتوح المصدر لخلق ديناميكية وقوية، وتطبيقات الويب تدرجية عالية في جاوة. نسيج يكمل ويبني على معيار API بريمج جافا، وهكذا كان يعمل في أي حاوية بريمج أو تطبيق الملقم.

ونسيج يقسم تطبيق ويب إلى مجموعة من الصفحات، التي شيدت من مكونات كل منهما. وهذا يوفر بنية متسقة، والسماح للإطار نسيج لتولي المسؤولية عن الشواغل الرئيسية مثل البناء URL وإرسال وتخزين الدولة المستمر على العميل أو على الخادم، المستخدم التحقق من صحة المدخلات، وتوطين / التدويل، والإبلاغ استثناء. تطوير تطبيقات نسيج تتضمن إنشاء قوالب HTML باستخدام HTML عادي، والجمع بين القوالب مع كميات صغيرة من شفرة جافا. في نسيج، يمكنك إنشاء التطبيق الخاص بك من حيث الأشياء، وأساليب وخصائص هذه الكائنات - وعلى وجه التحديد لا من حيث عناوين ومعلمات الاستعلام. نسيج يجلب تنمية حقيقية وجوه المنحى لتطبيقات الويب جافا.

وأيديولوجية وراء الفاصوليا هي في الوقت الحاضر في أي إطار جافا السليم أعرف. كما غني المذكور، الربيع هو / كبيرة في جميع أنحاء إطار منطق الأعمال الجيدة (راجع لها <لأ href = "http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/jdbc /core/package-summary.html "يختلط =" نوفولو noreferrer "> الطبقات جدبك قالب ، تلك هي ببساطة رهيبة - جوهرة عظيم آخر هو <وأ href =" http://static.springframework.org/spring/ مستندات / 2.5.x / إشارة / beans.html "يختلط =" نوفولو noreferrer "> applicationContext.xml حيث هو) وطبقة رأي أنا شخصيا أفضل <لأ href =" http://wicket.apache.org / "يختلط =" نوفولو noreferrer "> أباتشي النصيبة .

وأنا لا أعتقد أنك يجب أن تختار بنفسك ولكن بدلا من إيجاد الإطار الذي يناسب احتياجاتك والبدء في المساهمة في قاعدة رمزها، وبهذه الطريقة تحصل على بدء مع قاعدة المستخدمين شكلت بالفعل والتعليمات البرمجية الخاصة بك سوف تحصل على تأليف أكثر شمولا وهذا بدوره سوف تجعلك مبرمج أفضل.

والكؤوس المقدسة ( http://www.grails.org/ ) أو عنقاء مغرب (<أ href = ل "http://griffon.codehaus.org/" يختلط = "نوفولو noreferrer"> http://griffon.codehaus.org/ ) قد تكون ذات فائدة

StringTemplate هو مكتوب من قبل تيرنس بار، الرجل وراء ANTLR. إذا كنت مهتما في توليد نوع من العرض نصية من نموذج، وهذا أمر جيد جدا.

ولقد كان نتائج ممتازة استخدامه لتوليد XML، وصفحات الويب و ملفات نقطة من الطراز نفسه. أن تكتب القالب لتقديم كائن. هذا القالب يمكن استدعاء القوالب الأخرى (بما في ذلك بشكل متكرر)، استنادا إلى البيانات المستمدة من نموذج. (QV صورة )

وحاصل على وmap.get() هي للاستدعاء مباشرة من داخل القوالب. نموذج يمكن أن يكون أي POJO. ST تفخر على الفصل الصارم لها من وحدة تحكم، بحيث يسمح المنطق القليل جدا في قوالب أنفسهم.

وكما هو الحال مع كل هذه اللغات قليلا، انها شيء جديد للتعلم، وربما لا يكون ما كنت تبحث عنه. كان مناسبا حقا بالنسبة لي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top