如何将数据从动作类转移到struts2中的Jsp页面

时间:2011-03-24 07:08:33

标签: java struts2

如何将数据从动作类转移到struts2中的Jsp页面。 在将控件传输到jsp页面之前,是否在action类中构建了任何类型的堆栈,或者还有其他一些机制用于此。

1 个答案:

答案 0 :(得分:4)

Anshul,

你的实现是正确的。对于Struts2,我们可以按照下面的方式看到它

  1. 值栈
  2. OGNL
  3. 值栈是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;
     }
    }
    

    现在,当逻辑框架将动作实例放在值堆栈的顶部并且firstnamelastname将位于其顶部时,操作将返回。

    so now when we try to access these values in jsp something like
    <s:textfield name="firstname" value= "%{firstname}"/>
    

    这里(%{firstname}) OGNL将会出现,它会尝试查看名称为firstname的值堆栈中是否存在属性,因为操作位于值堆栈的顶部且具有属性名称为firstname,因此OGNL会找到它。

    我希望这会对你有所帮助