Pregunta

Tengo experiencia con Spring MVC y estoy tratando de salir de las rayas para decidir si hay que probarlo para un nuevo proyecto.

En Spring MVC I prepararía datos del modelo y pasarlo a la vista añadiéndolo a un mapa en el ejemplo ModelAndView creado por mi controlador. Estoy teniendo problemas para encontrar el equivalente de esto para rayas.

Parece que el paralelo más cercano es tener una ActionBean preparar mis datos del modelo y añadirlo a la HttpSession. A ForwardRedirect se utiliza para cargar la vista y se accede a los datos de la sesión.

¿Hay un mejor soporte para un controlador frontal proporcionada por rayas, o se trata de un principio de diseño totalmente diferente a Spring MVC? (Es decir, tengo que invocar métodos de la vista utilizando EL para recuperar los datos, como algunos de los ejemplos hacen)

Gracias!

¿Fue útil?

Solución

Un diseño típico de MVC en rayas se vería algo así como el código de abajo.

La entidad JPA está de forma automática cargado por un interceptor rayas proporcionada por Stripersist (pero esto también puede implementar fácilmente por su cuenta si lo desea). Así, en este ejemplo, solicitando http://your.app/show-order-12.html cargará una orden con id 12 de la base de datos y lo mostrará en la página.

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

Ver (order.jsp):

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

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

Por cierto, hay un pequeño libro realmente excelente en rayas que cubre todas estas cosas (!):

Rayas: ... y Java Web desarrollo es divertido de nuevo

Otros consejos

Bien he dado cuenta. Atributos añadidos a la HttpServletRequest (recuperado de contexto) están disponibles en la página de recepción de la ForwardRedirect

IE . Context.getRequest () setAttribute ( "attr1", "solicitud atributo 1"); volver nueva ForwardResolution ( "/ WEB-INF / pages / hello.jsp");

En hello.jsp $ {} Attr1 está disponible ... yay!

Hay en una solución agradable para nopCommerce 3,20 (MVC). Es un pago plug-in de apoyo, autorizar, autorizar / captura, devolución y parcialmente reembolso. PCI cumplimiento incluidos, sin información de CC se almacena sobre db http://shop.wama-net.com/en/stripe -Pago-plugin-para-nopCommerce

Jacky

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top