![](/img/trans.png)
[英]How to pass an object inside a jsp page [s:iterator] to an action class?
[英]How to pass object data between action class and jsp page?
我有一个名为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;
}
}
现在,Struts2框架将code
实例放在ValueStack
的顶部, ValueStack
是框架放置所有请求处理数据的地方,并由jsp / Actions使用OGNL引用,OGNL是一种获取数据的导航语言。
在JSP中,您可以使用以下代码访问code
实例
<s:property value="%{code.codeId}"/>
or
<s:textfield name="abc" value="%{code.codeId}"/>
这里究竟发生了什么,框架已经将您的code
实例与填充值放在ValueStack
,并且在OGNL的帮助下,我们获取该值。
OGNL将检查值框架顶部是否有一个实例namd code
,它将由框架放置,在找到code
实例后,它将检查它是否具有codeId属性。 在找到属性时, OGNL
将执行数据类型转换并将在JSP中显示该值。
希望这会帮助你。
尝试这个
<s:iterate value="codeobj" var="obj"
<s:property value="codeId"/>
<s:property value="codeDescription"/>
</s:iterate>
将数据从操作传递到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;
}
}
在JSP文件中:使用和value参数获取您在操作类中声明的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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.