对于如何把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表达式获取即可!

struts2中怎么把action中的值传递到jsp页面的更多相关文章

  1. struts2中把action中的值传递到jsp页面的例子

    例子: RegistAction的代码: package com.wss.action; import javax.servlet.http.HttpServletRequest; import or ...

  2. Struts2(四):在Action中如何访问Web资源

    1.什么WEB资源? HttpServletRequest,HttpServletRespone,HttpApplication,ServletContext,HttpSession等原生Servle ...

  3. struts2学习笔记之八:Action中方法的动态调用

    方法一:action名称+!+方法名称+后缀 Action类中增加addUser()和delUser()方法, package com.djoker.struts2; import org.apach ...

  4. java中方法的参数传递机制(值传递还是引用传递)

    看到一个java面试题: 问:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?  答:是值传递.Java 编程语言只有值传递参 ...

  5. java中方法传入参数时:值传递还是址传递?

    JAVA中的数据类型有两大类型: ① 基本数据类型:逻辑型(boolean).文本型(char).整数型(byte.short.int.long).浮点型(float.double) ② 引用数据类型 ...

  6. springMVC:将controller中数据传递到jsp页面

    1> 将方法的返回值该为ModelAndView在返回时,将数据存储在ModelAndView对象中如: newModelAndView("/WEBINF/jsp/showData.j ...

  7. C语言中函数参数传递的本质是值传递

    数组名做函数参数进行传递时,实际上是是一份该指针的拷贝. 给形参赋予其他值,并不影响实参的值. 类似于: int *p = a;    //a为数组名 p = b;          //b为数组名 ...

  8. <s:select>中list获取action中数据

    jsp: <s:select name="cate1.id" list="cate1list" listKey="id" listVa ...

  9. Struts2的整体回顾(Action, 拦截器, 值栈, OGNL表示式, ModelDriven)

    ValueStack里有map(request, session, attr, parameters)和对象栈. Map调用的方法: ActionContext.getContext().put(k, ...

随机推荐

  1. Android外部SD卡的读取

    package com.kevin.writeorreadfile1_1; import android.app.Activity; import android.bluetooth.le.ScanF ...

  2. AC日记——舒适的路线 codevs 1001 (并查集+乱搞)

    1001 舒适的路线 2006年  时间限制: 2 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description Z小镇是 ...

  3. Linux命令学习-mkdir

    1. [root@www tmp]# mkdir test    <=建立一名为 test 的新目录 2. [root@www tmp]# mkdir -p /opt/tmp/abc   < ...

  4. HUDSON(Java开发的一种持续集成工具)

    Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. Hudson的特性 1.易于 ...

  5. poj 1159 Palindrome

    Palindrome Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 59094   Accepted: 20528 Desc ...

  6. 第二章 时间控件(DateTime Picker)

    这家伙太懒了,碰到问题才写博文,嘿嘿. 好了进入正题,二话不说,先放地址: 中文:http://www.bootcss.com/p/bootstrap-datetimepicker/index.htm ...

  7. ILMerge 简单应用

    ILMerge是合并.net的assembly的工具,最新版的支持.net 4.0的ILmerge下载: http://www.microsoft.com/downloads/details.aspx ...

  8. hp_jetdirect 9100漏洞检测

    #-*-coding=utf8-*- import socket import sys def main(): if len(sys.argv)<=1: print('Parameters er ...

  9. 如何拿到半数面试公司Offer——我的Python求职之路(转)

    原文出处:http://www.cnblogs.com/Lands-ljk/p/5836492.html 从八月底开始找工作,短短的一星期多一些,面试了9家公司,拿到5份Offer,可能是因为我所面试 ...

  10. [CareerCup] 9.1 Climbing Staircase 爬楼梯

    9.1 A child is running up a staircase with n steps, and can hop either 1 step, 2 steps, or 3 steps a ...