对于如何把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. codeforces 101C C. Vectors(数学)

    题目链接: C. Vectors time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  2. uGUI练习(一) Anchor

    一.练习步骤 如果用过NGUI的Anchor,我们知道在2.x的版本有UIAnchor组件(下图左),3.x版本中,每个UIWidget有自带的Anchors(下图右) 而uGUI的Anchor用起来 ...

  3. 安卓内存不足(删除data/dalvik-cache目录)

    alvik-cache alvik-cache名词解释: 在系统data/dalvik-cache文件夹里有很多安装卸载文件(优化过的字节码),这些文件是当你安装好一个应用程序后,系统会自动生成的一个 ...

  4. Android ant自动打包 crunch 报错

    解决办法: 修改SDK_HOME/tool/ant/build.xml. <property name="aapt.ignore.assets" value="&l ...

  5. 梳理git分支管理策略

    如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System). 眼下最流行的"版本管理系统",非Git莫属. 相比同类软件, ...

  6. css常用中文字体的英文名称写法

    我们知道网页中使用中文字体最好用其对应的英文名称,这样可以避免出现编码问题导致样式中的中文名称出现乱码,从而不识别.下面是网页中常用的中文字体所对应的英文名称.留着,不用翻资料了 中文 英文 宋体 S ...

  7. 在文本中匹配链接并添加A标签

    (?<!href="|">)(https?:\/\/[\w\-\.!~?&=+\*\'(),\/]+)((?!\<\/\a\>).)* 这个正则可以 ...

  8. f2fs解析(一)f2fs如何解决wandering tree

    wandering tree问题是log-structured 文件系统(LFS) 特有的一个问题,因为LFS的脏数据是追加更新的,所以如果一个数据块变脏了,那么那个数据块的直接索引块.间接索引块都会 ...

  9. STL之stack栈

    栈(statck)这种数据结构在计算机中是相当出名的.栈中的数据是先进后出的(First In Last Out, FILO).栈只有一个出口,允许新增元素(只能在栈顶上增加).移出元素(只能移出栈顶 ...

  10. Contains Duplicate II

    Given an array of integers and an integer k, find out whether there there are two distinct indices i ...