• struts2中怎么把action中的值传递到jsp页面


    对于如何把struts2的action中的值传到jsp页面中,主要的方法有2种:

    1. 使用转发视图利用request域中储存所需的值

    2. 使用重定向时存储数据进入session使其在jsp中可以获得

    下面,让我们分先后的讲解这2种方法!

    一、转发到jsp:

    1. 准备步骤:

      • jsp页面随时准备使用el表达式获取request中的值,

      • action中的值分2种,一种是在方法中诞生的,作用域也是方法内;一种是定义为类成员(并带有get,set或者为public),此种方式只需赋值。

         2.操作流程:

        • 对于action的类属性,直接为其赋值(例如 message="Test";),然后在jsp页面中使用el表达式取出这个值(${message },直接以类属性名称取值即可,el默认的取值域就是request,struts2会将action的所有带有get,set(这两个方法必须同时有)的属性自动的放入request域中【当然你也可以使用struts的标签库,不推荐】)

        • 对于action中方法中产生的数据,又不想为其在action类中定义对应的成员,我们可以手动的将其存放进入request域中,在struts2中,有2种方式可以将数据存入request中。

            (1)一种是通过ActionContext.getContext().put("message",message);直接放入将数据request域中,不获取request本身,获取其

               中的Map;

            (2)另一种是使用ServletActionContext.getRequest().setAttribute("message",message);直接取得request对象,再使用

                                  request对象的方法setAttribute()方法存入数据!将数据存入request中后,jsp中取值并无差别(同上)!

    二、重定向到jsp:

    准备步骤:同上!不同处是不管要存入的数据是不是类的属性,我们都必须在方法中进行处理才能将数据存入session,而不能依靠struts2自动帮我们搞定!

    操作流程:

    不管数据是哪里诞生的,得到数据后!比如为message;同上的第二种情况:也有2中方式将数据存入到session中:

    (1)在方法中通过ActionContext().getContext().getSession().put("message",message);首先获取session中的map,再使用Map接口的方法put()存入数据

    (2)在方法中通过ServletActionContext().getRequest().getSession().setAttribute("message",message);首先获取session对象,再使用session对象的setAttribute方法将数据存入session域。

    最后,不管那种方式将数据存入到session中,我们都可在jsp页面中获取session中的值,例如${sessionScope.message }

    三、总结:

    不论如何,总是将数据存入tomcat提供的几个存数据的域中(request,session,application),然后在页面通过EL表达式获取即可!

  • 相关阅读:
    C# 使用 Microsoft.Feeds 组件获取 RSS 全文
    使用 Jquery 做类似搜索引擎效果
    ASP.NET MVC 利用 IHttpModule 实现路由调试
    Python 爬虫类库 Selenium 的常用方法介绍
    C# 中 New 关键词的几种用法
    ASP.NET 使用 IIS URL Rewrite 模块实现伪静态
    Java 源码分析之 HashTable
    Java 类中代码块和构造方法的执行顺序
    C# 中使用 FFmpeg.NET
    C# 项目中使用 ServiceStack.Redis 操作 Redis
  • 原文地址:https://www.cnblogs.com/Berryxiong/p/6115380.html
Copyright © 2020-2023  润新知