我有一个名为Code的Java类。它具有与codeId
,codeDescription
等代码相关的所有值及其getter和setter。我正在一个动作类中成功检索代码的数据(我正在使用struts 2)。
现在我想在display.jsp
页面中获取这些值。显然,我希望显示来自codeobj.codeId
,codeobj.codeDescription
等对象的数据。我怎么能这样做?
答案 0 :(得分: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;
}
}
现在,Struts2框架将code
实例放在ValueStack
的顶部,这是框架放置所有请求处理数据并由jsp / Actions使用OGNL引用的地方。是一种获取数据的导航语言。
code
实例
<s:property value="%{code.codeId}"/>
or
<s:textfield name="abc" value="%{code.codeId}"/>
这里究竟发生了什么,框架已将code
实例的填充值放在ValueStack
上,并且在OGNL的帮助下,我们将获取该值。
OGNL将检查值框架顶部是否有一个实例namd code
,它将由框架放置,在找到code
实例后,它将检查它是否具有codeId属性。在找到属性时,OGNL
将执行数据类型转换,并将在JSP中显示该值。
希望这会对你有所帮助。
答案 1 :(得分:0)
试试这个
<s:iterate value="codeobj" var="obj"
<s:property value="codeId"/>
<s:property value="codeDescription"/>
</s:iterate>
答案 2 :(得分:0)
要将数据从操作传递到jsp: 考虑您要将消息从操作传递到jsp。首先,在操作类中将消息声明为String变量。在Execute方法中,添加消息的值,如下例所示:
public class TestAction {
String message;
public String execute () {
System.out.println("Execute method called ");
message = "SUCCESS Message Ya Maged";
return "success";
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
: 使用和值参数获取您在操作类中声明的String消息变量的值。
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1><s:property value="message"/></h1>
</body>
</html>