Java MVC模型数据
我对SpringMVC很有经验,我正在试用Stripes来决定是否在新项目中试用它 在SpringMVC中,我将准备模型数据并通过将其添加到控制器创建的ModelAndView实例中的映射将其传递给视图。我很难找到条纹的等效物 看起来最相似的做法是让ActionBean准备我的模型数据并将其添加到HttpSession。ForwardRedirect用于加载视图,并从会话访问数据 Stripes提供的前端控制器是否有更好的支持,或者这是一种与SpringMVC完全不同的设计原则?(例如,我必须使用EL从视图中调用方法来检索数据,就像一些示例所做的那样)Java MVC模型数据,java,stripes,Java,Stripes,我对SpringMVC很有经验,我正在试用Stripes来决定是否在新项目中试用它 在SpringMVC中,我将准备模型数据并通过将其添加到控制器创建的ModelAndView实例中的映射将其传递给视图。我很难找到条纹的等效物 看起来最相似的做法是让ActionBean准备我的模型数据并将其添加到HttpSession。ForwardRedirect用于加载视图,并从会话访问数据 Stripes提供的前端控制器是否有更好的支持,或者这是一种与SpringMVC完全不同的设计原则?(例如,我必须使
谢谢 好吧,我已经弄明白了。添加到HttpServletRequest(从上下文检索)的属性在接收ForwardRedirect的页面中可用 即 context.getRequest().setAttribute(“attr1”,“请求属性1”); 返回新的ForwardResolution(“/WEB-INF/pages/hello.jsp”) 在hello.jsp中 ${attr1}
是可用的。。。耶 一个典型的条纹MVC设计看起来像下面的代码 JPA实体由提供的Stripes拦截器自动加载(但如果您愿意,也可以轻松实现)。因此,在本例中,请求将从数据库加载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”);
}
}
<html><body>
Order id: ${actionBean.order.id}<br/>
Order name: ${actionBean.order.name)<br/>
Order total: ${actionBean.order.total)<br/>
</body></html>
@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;
}
}
查看(order.jsp):
@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”);
}
}
<html><body>
Order id: ${actionBean.order.id}<br/>
Order name: ${actionBean.order.name)<br/>
Order total: ${actionBean.order.total)<br/>
</body></html>
@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;
}
}
顺便说一句,有一本关于条纹的非常优秀的短篇(!)书,涵盖了所有这些内容:
nopCommerce 3.20(MVC)只有一个不错的解决方案。这是一个支持、授权、授权/捕获、退款和部分退款的支付插件。包括PCI合规性,数据库中不存储CC信息
Jacky我不喜欢将模型数据添加到HttpSession的方法,因为对于大多数页面请求,模型数据实际上应该存储在请求范围内,而不是会话范围内。这是我所能找到的对stripes最接近的等效支持。ActionBean既是控制器(Action),也是父模型数据(Bean)。)伟大的谢谢你的解释和完美的例子。:)