我对Spring MVC很有经验,我正在尝试使用Stripes来决定是否尝试新项目。
在Spring MVC中,我会准备模型数据并将其传递给视图,方法是将其添加到由我的控制器创建的ModelAndView实例中的地图上。我无法为Stripes找到相同的东西。
似乎最接近的并行是让ActionBean准备我的模型数据并将其添加到HttpSession。 ForwardRedirect用于加载视图,并从会话中访问数据。
是否有更好的支持Stripes提供的前端控制器,或者这是一个完全不同于Spring MVC的设计原理? (即我必须使用EL调用视图中的方法来检索数据,如某些示例所做的那样)
谢谢!
答案 0 :(得分:5)
Stripes中的典型MVC设计看起来像下面的代码。
JPA实体由Stripersist提供的Stripes拦截器自动加载(但如果您愿意,也可以轻松实现on your own)。因此,在此示例中,请求http://your.app/show-order-12.html将从数据库加载ID为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;
}
}
BTW有一本关于Stripes的非常好的短篇(!)书,涵盖了所有这些内容:
答案 1 :(得分:1)
好的,我已经弄清楚了。添加到HttpServletRequest的属性(从上下文中检索)在接收ForwardRedirect的页面中可用
IE context.getRequest()。setAttribute(“attr1”,“request attribute 1”); 返回新的ForwardResolution(“/ WEB-INF / pages / hello.jsp”);
在hello.jsp中 $ {} attR1位 可用......耶!
答案 2 :(得分:0)
nopCommerce 3.20(MVC)有一个很好的解决方案。它是支持插件,支持,授权,授权/捕获,退款和部分退款。包括PCI合规性,db上不存储CC信息 http://shop.wama-net.com/en/stripe-payment-plugin-for-nopcommerce
张学友