Struts从后台向前台传递数据

写在前面,在action中对实例化的对象,要有get、set方法,在前台就可以通过struts标签来取得数据。

-----------------------------------------------------------------------转-------------------------------------------------------------

不是action传值到jsp页面,而是jsp页面获取action中的属性值,或者范围(如request,session,application等)里的值。所以,有两种方法1,获取的是action属性的值,用struts2标签和ognl即可获取如,<s:property  value="属性名.属性名。。。"/> 这种形式2,获取的是范围内的值直接使用EL表达式如${name}为requestScope范围绑定的名为name的属性,省略requestScope因为这是默认的范围${sessionScope.name}为sessionScope范围绑定的名为name的属性



1

2

3

4

5

6

7

1)action定义getPersons()  

2)Person中定义getName()和getAge()  

3):  

<s:iterator id="u" value="persons">  

 <s:property value=‘#u.getName()‘/>  

 <s:property value=‘#u.getAge()‘/>  

</s:iterator>

总结来说是2中方式:如下 
1、一般是在Action中定义一个成员变量,然后对这个成员变量提供get/set方法,在JSP页面就可以取到这个变量的值了。
  1)在Action中定义成员变量
//定义一个成员变量 
private String message; 
      
//提供get/set方法 
public String getMessage() { 
    return message; 
} 
public void setMessage(String message) { 
    this.message = message; 
}
 2)在JSP页面中取值
${message} 
或者 
<s:property value="message"/>
2、但是定义的成员变量多了,感觉整个Action的代码就很长了。这个时候可以使用一些Servlet API进行值的存取操作:HttpServletRequest、HttpSession和ServletContext。Struts2对这个三个对象用Map进行了封装,我们就可以使用Map对象来存取数据了。
  1)在Action中存值
ActionContext actionContext = ActionContext.getContext(); 
          
//get HttpServletRequest 
Map<String,Object> request = (Map) actionContext.get("request"); 
request.put("a", "a is in request"); 
          
//get HttpSession 
//Map<String,Object> session = (Map) actionContext.get("session"); 
Map<String,Object> session = actionContext.getSession(); 
session.put("b", "b is in session"); 
          
//get ServletContext 
//Map<String,Object> application  = (Map) actionContext.get("application"); 
Map<String,Object> application  = actionContext.getApplication(); 
application.put("c", "c is in application");
 2)在JSP页面上取值
${a} 
${b} 
${c} 
or               
${requestScope.a} 
${sessionScope.b} 
${applicationScope.c}
时间: 2024-10-30 12:42:17

Struts从后台向前台传递数据的相关文章

如何实现后台向前台传数据

这两天正在研究如何让后天主动向前台展现数据,只要后台有数据上传的时候就向前台上传(因为公司有个项目,硬件设备会不断的上传数据,服务端将接收到的数据向前台展示).在网上查了一下,下面将介绍一下其中的两种解决办法 一.WebSocket WebSocket 是web客户端和服务器之间新的通讯方式, 依然架构在HTTP协议之上.使用WebSocket连接, web应用程序可以执行实时的交互, 而不是以前的poll方式. WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的

java代码中后台向前台传递list或map集合案例

导入jar包 新建一个servert传递map集合 ajax.java代码: 1 package servlet; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 import java.util.ArrayList; 6 import java.util.HashMap; 7 import java.util.List; 8 import java.util.Map; 9 10 import javax.servl

总结前台传递数据的几种方式:

1.JQuery的ajaxSubmit(obj)方法 ajaxSubmit(obj)方法是jQuery的一个插件jquery.form.js里面的方法,所以使用此方法需要先引入这个插件. 它是如何传递数据的呢?首先我们需要一个form表单: <form id="mainform" name="mainform" action="myaction" method="post"> 标题:<input type=&

后台向前台传递entity的list然后构筑combobox的方法(easyui)

遇问题,莫着急,深呼吸. 后台写法:JsonUtil.toJson(new ArrayList<Entity>());此处jsonUtil是已封装的方法,即将entity的list转为json,根据项目中的具体方法,或放入map,或用response write过去,传入前台.例:modelMap.put("roleDataList", JsonUtil.toJson(getRoleList())); 前台写法从后台获取jsonlist  eval(jsonlist);然后

Asp.net mvc中controller与view间的如何传递数据

1.      Asp.net中的页面指令 无论是在java程序中还是在.net程序中,我们总是会看见一些@指令,那么这些常见指令的作用是什么呢? ?  @Page指令 只能在.aspx页中使用.如果在其他页面中使用会发生编译错误.比较常见的属性有: 1. Language 指出在编译内联代码块和页的<script>节中出现的所有代码时所使用的语言,默认的语言是Visual Basic .NET. 2. AutoEventWireup 指出是否启用页事件.默认为true. VS.NET开发的页

MVC中前台如何向后台传递数据------$.get(),$post(),$ajax(),$.getJSON()总结

一.引言 MVC中view向controller传递数据的时候真心是一个挺让人头疼的一件事情.因为原理不是很懂只看一写Dome,按葫芦画瓢只能理解三分吧. 二.解读Jquery个Ajax函数 $.get(),$.post(),$.ajax(),$.getJSON() 1.$.get(url,[data],[callback]) 参数说明 url:请求地址,MVC中一般为:“/QueryScores/Search/” (/controller/action/) data:请求数据列表,MVC中ac

EF5(7) 后台使用SelectListItem传值给前台显示Select下拉框;mvc后台Action接收浏览器传值的4种方式; 后台Action向前台View视图传递数据的四种方式

一:后台使用SelectListItem 传值给前台显示Select下拉框 我们先来看数据库的订单表,里面有3条订单,他们的用户id对应了 UserInfo用户表的数据,现在我们要做的是添加一个Order控制器,显示订单列表,并且在修改订单的时候,把用户的id 用 select 下拉框显示出来,并且可以提交修改数据   1.1 我们通过比较原始的方法,来把数据 传递到前台后,前台使用  循环来显示 select 并且显示是哪个元素被选中 我们在前台的cshtml中,使用 @model 命令 指定

【转-整理】Struts2从后台传递数据到前台的主要方法和流程

两种主要方式:一 和Servlet API耦合的访问方式二 和Servlet API解耦的访问方式 ********************************************************************一 和Servlet API耦合的访问方式1. 采用Request  (HttpServletRequest)对象来传递数据(1)在Action类文件中    (A) 导入ServletActionContext类:          import org.apa

【Lua】LWT后台用JSON与 ExtJS传递数据

要完成目录树的构建,需要前台ExtJS构筑页面,后台处理逻辑,中间由JSON传递数据. 首先搭建后台环境: 1 require "httpd" 2 require "lfs" 3 4 request, args = ... 5 6 local s = {root = { 7 text = "rootNode", 8 expanded = true, 9 children = { 10 { 11 text = 'book1', 12 leaf =