【问题标题】:How to pass object data between action class and jsp page?如何在动作类和jsp页面之间传递对象数据?
【发布时间】:2011-03-21 07:09:56
【问题描述】:

我有一个名为 Code 的 Java 类。它包含与 codeIdcodeDescription 等代码相关的所有值及其 getter 和 setter。我正在一个动作类中成功检索代码的数据(我正在使用 struts 2)。

现在我想在我的display.jsp 页面中获取这些值。显然,我希望显示来自 codeobj.codeIdcodeobj.codeDescription 等对象的数据。我该怎么做?

【问题讨论】:

    标签: java jsp struts2


    【解决方案1】:

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

    这里是代码sn-p

    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 的顶部,这是框架放置所有请求处理数据并由使用 OGNL 的 jsp/Actions 引用的地方,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 中显示值。

    希望这会对你有所帮助。

    【讨论】:

      【解决方案2】:

      试试这个

      <s:iterate value="codeobj" var="obj"
      
      <s:property value="codeId"/>
      <s:property value="codeDescription"/>
      
      </s:iterate>
      

      【讨论】:

        【解决方案3】:

        将数据从动作传递到jsp: 考虑您希望将消息从操作传递到 jsp。首先,在动作类中将消息声明为字符串变量。在 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 参数来获取您在 action 类中声明的 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>
        

        【讨论】:

        • 我怎样才能做相反的jsp动作??
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多