条纹MVC模型数据

时间:2010-10-14 07:10:20

标签: java stripes

我对Spring MVC很有经验,我正在尝试使用Stripes来决定是否尝试新项目。

在Spring MVC中,我会准备模型数据并将其传递给视图,方法是将其添加到由我的控制器创建的ModelAndView实例中的地图上。我无法为Stripes找到相同的东西。

似乎最接近的并行是让ActionBean准备我的模型数据并将其添加到HttpSession。 ForwardRedirect用于加载视图,并从会话中访问数据。

是否有更好的支持Stripes提供的前端控制器,或者这是一个完全不同于Spring MVC的设计原理? (即我必须使用EL调用视图中的方法来检索数据,如某些示例所做的那样)

谢谢!

3 个答案:

答案 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的非常好的短篇(!)书,涵盖了所有这些内容:

<强> Stripes: ...and Java Web Development Is Fun Again

答案 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

张学友