سؤال

على شركتي ، نقوم بتطوير تطبيق يشبه ERP باستخدام Java و JSF ، حتى الآن حدد فريق التصميم حوالي 20 كيانًا ، ولكل منها خصائص مختلفة ، وعادة ما سنقوم ببناء 20 صفحة من Crud ، هل هناك طريقة أفضل للقيام بها هذا؟ ، نحن نستخدم السبات كوصول إلى DB ، لذلك توصلنا إلى فكرة DAO واحدة لهذا الجزء من النظام ، هل واجهت وضعًا مشابهًا؟ ما هي أفكارك حول ذلك؟

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

المحلول

قد تنظر في Codegendering تلك الشاشات العشرين ، مثل السقالات في Ruby. بقدر ما يتعلق الأمر بـ DAO ، يمكنك سحب عمليات CUD إلى بعض iBusinessObjectDao عام ، تاركًا عمليات R محددة (الاستعلام عن طريق مختلف المعلمات) لتوصيل تطبيقات DAO.

نصائح أخرى

يجب عليك حقا أن تنظر إلى التماس. لديها ميزة تسمى التماس سيؤدي ذلك إلى عكس هندسة صفحات تطبيق التطبيق بالكامل من قاعدة البيانات. يمكنك تعديل قوالب Seam-Gen (التي تستند إلى علامة تجارية) لتخصيص الصفحات التي سيتم إنشاؤها حسب رغبتك.

يمكنني استخدام المكون الإضافي Eclipse Azzurri Clay لنمذجة قاعدة البيانات الخاصة بي وإنشاء DDL. ثم أقوم بتشغيل Seam-gen وفي بضع ثوانٍ لديك تطبيق تشغيل. إنها مزيج مفيد للغاية.

أعلم أن الأمر متأخر ، لكنني أعتقد أن إطارتي الصغيرة سيناسب هذا الموقف تمامًا. الدفع http://code.google.com/p/happyfacescrud/ . إنه يبحث عن المربع ، والمكونات المخصصة التي تتعرف على نوع البيانات من الكيان ، و Datamodel الكسول ، والمرونة التي لا يمكن لمولدات الرموز تقديمها. فيما يلي عينة صغيرة كيف سيبدو صفحة مع Lazy Datatable وسيبدو البحث:

    <hf:searchPanel columns="4" backingBean="#{accountBean}">
        <hf:searchField label="#{messages['account.accountNumber']}" field="accountNumber" />
        <hf:searchField label="#{messages['account.active']}" field="active" isMessage="true" />
        <hf:searchEntityField label="#{messages['account.customer']}" field="customer" childField="name" popup="true" />
        <hf:searchField label="#{messages['account.openingDate']}" field="openingDate" rangeSearch="false" />
    </hf:searchPanel>
    <hf:dataList label="#{messages['account.search.results']}" backingBean="#{accountBean}">
        <hf:column label="#{messages['account.accountNumber']}" field="accountNumber" />
        <hf:column label="#{messages['account.active']}" field="active" isMessage="true" />
        <hf:column label="#{messages['account.customer']}" field="customer" childField="name" entityView="/pages/customerEdit.xhtml" popupFields="email,phone,address" />
        <hf:column label="#{messages['account.openingDate']}" field="openingDate" isDate="true" />
        <hf:actionsColumn />
    </hf:dataList>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top