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!
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 (!):
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