如何在动作类和jsp页面之间传递对象数据?

adn*_*295 2 java jsp struts2

我有一个名为Code的Java类.它具有所有为如下代码相关的价值观codeId,codeDescription他们的getter和setter方法等.我正在一个动作类中成功检索代码的数据(我正在使用struts 2).

现在我想在我的display.jsp页面中获取这些值.显然,我想从对象像数据codeobj.codeId,codeobj.codeDescription来显示等.我怎么能这样做?

Ume*_*thi 8

您需要拥有的是Action类中字段的getter和setter方法.Struts2会将该对象放在顶部,ValueStack并且在OGNL您的帮助下可以从JSP访问属性.

这是代码片段

public class Test Extends ActionSupport{
    public String execute() throws Exception{
     // Action Logic fetching/Init code object
     return SUCCESS;

}

private Code code=null;

public void setCode(Code code){
    this.code=code
}

public Code getCode(){
    return code;
}

}
Run Code Online (Sandbox Code Playgroud)

现在,Struts2框架将code实例置于其中的顶部,ValueStack其中所有请求处理数据由框架放置,并由jsp/Actions使用OGNL引用,OGNL是用于获取数据的导航语言.

在JSP中,您可以使用code以下代码访问该实例

<s:property value="%{code.codeId}"/>
or
<s:textfield name="abc" value="%{code.codeId}"/>
Run Code Online (Sandbox Code Playgroud)

这里究竟发生了什么,框架已经将你的code实例放在了填充值上,ValueStack并且在OGNL的帮助下,我们正在获取该值.

OGNL将检查code值框架顶部是否有一个实例namd 将由框架放置,在找到code实例后它将检查它是否具有codeId属性.在查找属性时,OGNL将执行数据类型转换并将在JSP中显示该值.

希望这会帮助你.