有没有更好的方法将数据传输到struts2中查看

时间:2014-07-26 17:35:47

标签: jsp model-view-controller struts2

现在,我向Action对象添加属性,在我的JSTL / Jsp视图中,我在valuestack中读取了这些属性。

我觉得不干净,如果我要添加一些数据来查看,我必须在我的动作中添加一个属性。 这导致我的行动,数据,视图耦合。

有更好的方法吗?

class MyAction{
    int theDataSentToView1;
    String theDataSentToView2;
}

in jsp:

echo myAction.theDataSentToView1;
....

1 个答案:

答案 0 :(得分:1)

在Struts2 Action中是一个MVC意义上的模型。所以模型属性应该可供查看,以便与JSTL,EL,OGNL等一起使用。视图中使用的所有这些表达式语言都在Struts2中的值堆栈上运行,动作bean由框架置于其上,所以你easy可以将您的数据耦合到值堆栈。如果你不想在动作中使用它,你可以将它推/放在堆栈中的某个位置,这样就可以从那里访问它。但是你不应该这样做,因为框架具有ModelDriven特性,可以用于MVC意义上的模型而不是动作。只需将属性从操作移动到模型对象即可。 modelDriven拦截器将此对象推送到值堆栈的顶部。