Domanda

ho una buona esperienza con Spring MVC e sto cercando fuori Stripes per decidere se provare per un nuovo progetto.

In Spring MVC mi avrebbe preparato i dati del modello e passarlo alla vista aggiungendolo ad una mappa nell'istanza ModelAndView creato da mio controller. Sto avendo difficoltà a trovare l'equivalente di questo per Stripes.

Sembra che la più vicina in parallelo è di avere un ActionBean preparare i miei dati del modello e inserirlo alla HttpSession. Un ForwardRedirect viene utilizzato per caricare la vista e il dato si accede dalla sessione.

C'è un supporto migliore per un front controller fornito da Stripes, o si tratta di un principio di design totalmente diverso da quello Spring MVC? (Vale a dire che devo richiamare i metodi dalla vista utilizzando EL per recuperare i dati, come alcuni degli esempi fanno)

Grazie!

È stato utile?

Soluzione

Un tipico disegno MVC in Stripes assomiglierebbe qualcosa come il codice qui sotto.

L'entità JPA viene automaticamente caricato da un intercettore bande fornito da Stripersist (ma questo può anche facilmente implementato da soli se lo si desidera). Così, in questo esempio, richiedendo http://your.app/show-order-12.html verrà caricato un ordine con id 12 dal database e mostrerà nella pagina.

Controller (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”);
    }
}

View (order.jsp):

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

Modello (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;
    }   
}

A proposito v'è un davvero eccellente breve libro su Stripes che copre tutte queste cose (!):

Stripes: ... e Java Web di sviluppo è di nuovo divertente

Altri suggerimenti

Ok ho capito. Attributi aggiunti alla HttpServletRequest (recuperato dal contesto) sono disponibili nella pagina che riceve il ForwardRedirect

IE . Context.getRequest () setAttribute ( "attr1", "richiesta attributo 1"); return new ForwardResolution ( "/ WEB-INF / pagine / hello.jsp");

In hello.jsp $ {} Attr1 è disponibile ... yay!

Ci si trova su una bella soluzione per nopCommerce 3.20 (MVC). Si tratta di un plug-in pagamento di supporto, di autorizzare, autorizzano / capture, rimborso e parzialmente il rimborso. la conformità PCI inclusi, senza informazioni CC viene memorizzato sui db http://shop.wama-net.com/en/stripe -Il pagamento-plug-in-nopCommerce

Jacky

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top