سؤال

أنا من ذوي الخبرة في Spring MVC وأحاول الخروج من الخطوط لتحديد ما إذا كنت سأجربها في مشروع جديد.

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

يبدو أن الأقرب الموازي هو وجود ActionBean إعداد بيانات النموذج الخاصة بي وإضافتها إلى HTTPSession. يتم استخدام جهاز الأمامي لتحميل العرض ويتم الوصول إلى البيانات من الجلسة.

هل هناك دعم أفضل لوحدة تحكم أمامية توفرها خطوط ، أم أن هذا مبدأ تصميم مختلف تمامًا عن Spring MVC؟ (أي يجب أن أطلب أساليب من العرض باستخدام EL لاسترداد البيانات ، كما تفعل بعض الأمثلة)

شكرًا!

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

المحلول

سيبدو تصميم MVC النموذجي في خطوط مثل الرمز أدناه.

يتم تحميل كيان JPA التلقائي بواسطة اعتراض خطوط مقدمة بواسطة Stripersist (ولكن هذا يمكن أن ينفذ بسهولة لوحدك لو كنت تريد). وهكذا في هذا المثال ، طلب http://your.app/show-order-12.html سيتم تحميل طلب مع معرف 12 من قاعدة البيانات وسيعرضه على الصفحة.

وحدة التحكم (OrderAction.java):

@UrlBinding("/show-order-{order=}.html")
public class OrderAction implements ActionBean {
    private ActionBeanContext context;
    private Order order;

    public ActionBeanContext getContext() {
        return context;
    }

    public void setContext(ActionBeanContext context) {
        this.context = context;
    }

    public void setOrder(Order order) {
        this.order = order;
    }

    public String getOrder() {
        return order;
    }

    @DefaultHandler
    public Resolution view() {
        return new ForwardResolution(“/WEB-INF/jsp/order.jsp”);
    }
}

عرض (order.jsp):

<html><body>
    Order id: ${actionBean.order.id}<br/>
    Order name: ${actionBean.order.name)<br/>
    Order total: ${actionBean.order.total)<br/>
</body></html>

النموذج (order.java):

@Entity
public class Order implements Serializable {
    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String name;
    private Integer total;

    public String getName() {
        return name;
    }

    public Integer getTotal() {
        return total;
    }   
}

راجع للشغل هناك كتاب قصير (!) على خطوط يغطي كل هذه الأشياء:

خطوط: ... وتطوير الويب Java ممتع مرة أخرى

نصائح أخرى

حسنًا ، لقد اكتشفت ذلك. تتوفر السمات التي تمت إضافتها إلى httpservletrequest (تم استردادها من السياق) في الصفحة التي تتلقى الأمامية الأمامية

ie context.getRequest (). setAttribute ("attr1" ، "request request 1") ؛ إرجاع New ForwardResolution ("/web-inf/pages/hello.jsp") ؛

في hello.jsp $ {attr1} متاح ... ياي!

هناك حل واحد لطيف لـ Nopcommerce 3.20 (MVC). إنه مكون إضافي للدفع يدعم ، ويسمح له ، ويسمح/التقاط ، واسترداد الأموال واسترداد الأموال جزئيًا. تم تضمين الامتثال PCI ، لا يتم تخزين أي معلومات CC على ديسيبلhttp://shop.wama-net.com/en/stripe-payment-plugin-for-nopcommerce

جاكي

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