我有一个名为Code的Java类.它具有所有为如下代码相关的价值观codeId,codeDescription他们的getter和setter方法等.我正在一个动作类中成功检索代码的数据(我正在使用struts 2).
现在我想在我的display.jsp页面中获取这些值.显然,我想从对象像数据codeobj.codeId,codeobj.codeDescription来显示等.我怎么能这样做?
您需要拥有的是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中显示该值.
希望这会帮助你.