如何将数据从动作类转移到struts2中的Jsp页面。 在将控件传输到jsp页面之前,是否在action类中构建了任何类型的堆栈,或者还有其他一些机制用于此。
答案 0 :(得分:4)
Anshul,
你的实现是正确的。对于Struts2,我们可以按照下面的方式看到它
值栈是Struts2框架中的虚拟堆栈,也是一个中心位置,其中所有与请求处理相关的数据都将由Framework放置。在Struts2中,Action也被视为数据载体,所以究竟发生了什么呢?动作完成了它的工作,它被置于价值堆栈的顶端。
让我们在Action
中有类似的东西public class MyAction extends ActionSupport{
private String firstname;
private String lastname;
public void setFirstName(firstname){
this.firstname=firstname
}
public void setLastName(lastname){
this.lastname=lastname
}
public String getFirstName(){
return firstname;
}
public String geLastName(){
return lastname;
}
public String execute() throws Exception{
//action logic filling first name and last name from database etc.
return SUCCESS;
}
}
现在,当逻辑框架将动作实例放在值堆栈的顶部并且firstname
和lastname
将位于其顶部时,操作将返回。
so now when we try to access these values in jsp something like
<s:textfield name="firstname" value= "%{firstname}"/>
这里(%{firstname}) OGNL
将会出现,它会尝试查看名称为firstname
的值堆栈中是否存在属性,因为操作位于值堆栈的顶部且具有属性名称为firstname
,因此OGNL会找到它。
我希望这会对你有所帮助