struts2 对EL的改变】的更多相关文章

Struts2对EL的改变 1.Struts2中使用EL的问题: 前提: 我们应该知道,如果我们没有往值栈(根)中放入数据的话,那么我们的动作类默认是在值栈的栈顶 2.关于EL问题的分析: 分析:           我们知道EL表达式是从四大域对象中依次查找属性.搜索范围是由小到大.page Scope————>request Scope ————>sessionScope————>application Scope 但是通过测试发现,搜索完request范围后就没有继续搜索,而是返回…
不知道大家有没有想过这样一个问题:为什么在action中的实例变量,没有使用request.setAttribute()方法将值添加到request范围内,却能在jsp中用EL表达式取出? 众所周知,EL表达式只能取出pageContext,request,session,application属性范围的值.然而,在struts2中能突破这一个限制,成功的取出action中的实例变量值. 请看例子: 这是一个action package com.wuyou.action; import com.…
http://blog.csdn.net/cuihaiyang/article/details/41950141 (写的不错,可以知道为什么struts2可以用El取属性值的问题.正常el从request,session等中取值) http://blog.163.com/shexinyang@126/blog/static/13673931220138124240950/…
pagecontext---->request---->Valuestack-root栈顶----->root栈底----->actioncontext map---->session----->application…
十五.contextMap 1.动作类的生命周期 明确:动作类是多例的,每次动作访问,动作类都会实例化.所以是线程安全的.与Struts1的区别是,struts1的动作类是单例的. 2.请求动作的数据存放 问题: 每次请求时,都会产生一些请求数据,这些数据存放到哪里去了?  明确: 在每次动作执行前,核心控制器StrutsPrepareAndExecuteFilter都会创建一个ActionContext和ValueStack对象.且每次动作访问都会创建. 这两个对象存储了整个动作访问期间用到的…
一.contextMap中的数据操作 root根:List 元素1 元素2 元素3 元素4 元素5 contextMap:Map key value application Map key value name test session Map request Map attr Map 1.存数据: 需要熟悉ActionContext和valueStack的API.框架为我们存数据. 1.1.利用ActionContext存数据 1.2.利用ValueStack存数据 a.如何获取ValueSt…
一.contextMap中的数据操作 root根:List 元素1 元素2 元素3 元素4 元素5 contextMap:Map key value application Map key value name test session Map request Map attr Map 1.存数据: 需要熟悉ActionContext和valueStack的API.框架为我们存数据. 1.1.利用ActionContext存数据 1.2.利用ValueStack存数据 a.如何获取ValueSt…
一.OGNL入门 1.简介     OGNL的全称是对象图导航语言(Object-Graph Navigation Language),它是一种功能强大的开源表达式语言,使用这种表达式语言,可以通过某种表达式语法,存取Java对象的任意属性,调用Java对象的方法,同时能够自动实现必要的类型转换.如果把表达式看作是一个带有语义的字符串,那么OGNL无疑成为了这个语义字符串与Java对象之间沟通的桥梁.在struts2中,ognl表达式就是默认的表达式语言. 2.使用要求     (1)导入标签库…
一.简介 Struts2的标签库使用OGNL为基础,大大简化了数据的输出,也提供了大量标签来生成页面效果,功能非常强大. 在早期的web应用开发中,jsp页面主要使用jsp脚本来控制输出.jsp页面嵌套大量的java脚本. 导致页面的可读性较差,可维护性也很低,页面美工人员不懂java,java开发人员也不懂美工设计. JSP规范1.1之后,增加了自定义标签库的规范. 通过使用自定义标签库,在简单的标签中封装复杂的功能,从而避免了jsp页面中出现大量java代码. JSP规范制订了一个标准的标签…
目录 Struts2的介绍与执行流程 介绍: 执行流程: 运行环境搭建 基础示例 Action类的编写 介绍: 访问servlet API 补充: 配置文件 常见配置文件: 常量的配置: struts.xml配置: Action的访问配置: 结果视图result的配置: 数据封装: 普通属性的封装 复杂类型的数据封装 数据封装中的报错:Input逻辑视图: 补充: OGNL 介绍: OGNL的使用认识: 使用: 值栈 获取值栈: 操作值栈: 小演示: OGNL中的特殊符号 EL的强化: 补充:…
这里先添加下在项目遇到的问题: 这两天在做论坛项目的时候,犯了一个错误:将数据放入值栈中,结果jsp页面获取不到. 困扰了许久: 总结如下: (1)每个action对应相应页面的值栈中值的获取,在属于此action的页面上面如果采用OGNL或者EL表达式获取的值都是从此action中获取的.不要将action对应的页面搞乱了 (2)关于EL表达式获取值栈中心的:map和对象栈stack中的值的获取方式:对于两者的获取方式都是${}这种方式,不分#的. (3)jsp页面的参数获取的形式: 举个例子…
1.MVC 和 JSP Model 2 **   a.:M-Model 模型 包含两部分:业务数据和业务处理逻辑  b.V-View 视图:视图(View)的职责是负责显示界面和用户交互(收集用户信息).  c.C-Controller 控制器 项目中写的ActionServlet.--------------------------------------------------2.我们写的模式被我们称为JSP Model1,在其中我们有模型层(M),但是视图层(V)的  JSP中包含了业务逻…
forEach究竟能不能改变数组的值 :https://blog.csdn.net/ZhengKehang/article/details/81281563 初学者每次提到Array对象的时候有些烦人,有些方法是改变原数组的,有些则不改变原数组. 有趣的存在~forEach这个方法,或者说数组存储的数据本身 看两个例子: 例子一: let obj = {'1':1} let oldArr = ['1',1,obj,true] oldArr.forEach((el)=>{ el = 1 }) co…
为什么说Java具有跨平台特性? 我们知道计算机只认识1,0两种电平的信号,所有信息或者计算指令最终都编码成16进制的机器码,这些机器码作为程序保存于计算机的内存中,由CPU去单个取指令执行直到程序执行完毕.然而计算机能认识的这些机器码确实不是人类善于处理的,因此人们发明了汇编语言,随后使用汇编器(assembler)翻译成为机器码:再随后贝尔实验室发明了C语言,这个就是人类能够理解并创造的高级程序了.同样地,要在CPU上运行,我们必须翻译成机器码,这个由编译器来完成.我们来看下面一句程序: p…
一. 核心部分 1. [核心试题]完成当天课堂练习 2. [多选题] 阅读如下代码中,下列哪种方式可以在页面正确迭代获取集合中的数据 (ABC) public String add(){ ValueStack vs = ActionContext.getContext().getValueStack(); // 压入List集合 List<User> ulist = new ArrayList<User>(); ulist.add(new User("小明",2…
ContextMap 包含值栈包含 root(list结构)和context(map结构)  值栈包含contextMap的引用.  Actioncontext是工具类 可以获取他们 Struts2拥有优良的设计和功能,其优势具体如下:  优点 l 项目开源,使用及拓展方便,天生优势. l 提供Exception处理机制. l Result方式的页面导航,通过Result标签很方便的实现重定向和页面跳转.  全局结果视图 l 通过简单.集中的配置来调度业务类,使得配置和修改都非常容易. l 提供…
返回目录 据小菜了解,对于java开发,涉及到页面展示时,比较主流的有两种解决方案: 1. struts2+vo+el表达式. 这种方式,重点不在于struts2,而是vo和el表达式,其基本思想是:根据页面需要的信息,构造出一个实体,这个实体中包含了界面需要的所有属性,通常这个实体是由N个表中的字段构成的,俗称vo.由于vo的属性可以是String.List.Map等等等,又可以vo套vo,因此这种方式非常灵活,也非常好用. 在后台对vo进行赋值,通过struts2封装到request中,然后…
查看Button.js的源代码 +function ($) { 'use strict'; // BUTTON PUBLIC CLASS DEFINITION // ============================== var Button = function (element, options) { this.$element = $(element) this.options = $.extend({}, Button.DEFAULTS, options) this.isLoadi…
进口FileUpload和common-io的Jar包 注意:1.Struts2其它方法需要使用的:struts2过滤,将改变reqeust类型,由HttpServletRequest成为MultiPartRequestWrapper 1.Test.jsp: <form action="<%=basePath%>self/testFileUpload.do" method="post" enctype="multipart/form-da…
软件下载列表: Emacs Racket (这里使用 Racket ,更加方便,便于后面配置 Emacs) 配置 安装好 Emacs 后,在 C:\Users\用户名\AppData\Roaming\.emacs.d 文件夹中添加文件 init.el . (setenv "HOME" "E:/emacs-25.2/") ;; you can change this dir to the place you like (load "~/.emacs.d/in…
Struts2 学习笔记(三) 1.ognl概述: OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts2框架使用OGNL作为默认的表达式语言. OGNL相对其它表达式语言具有下面几大优势: 1.支持对象方法调用 如xxx.doSomeSpecial(): 2.支持类静态的方法调用和值访问 表达式的格式: @[类全名(包括包路径)]@[方法名 |  值名],例如: @java.lang.String@format…
对于java开发,涉及到页面展示时,比较主流的有两种解决方案: 1. struts2+vo+el表达式. 这种方式,重点不在于struts2,而是vo和el表达式,其基本思想是:根据页面需要的信息,构造出一个实体,这个实体中包含了界面需要的所有属性,通常这个实体是由N个表中的字段构成的,俗称vo.由于vo的属性可以是String.List.Map等等等,又可以vo套vo,因此这种方式非常灵活,也非常好用. 在后台对vo进行赋值,通过struts2封装到request中,然后在界面用el表达式,通…
我之前在写一个输入联想控件的时候,改过好几个版本,每个版本不是因为性能不好就是因为代码凌乱而被推翻,最后用了understore模板引擎,效果有明显改善.整好这两天在研究互联网技术架构,发现很多的开发框架前端都是使用js模板引擎,感悟真的是大道至简,殊途同归啊,哈哈. 关于为什么使用js模板引擎,在博客园发现园友的一片文章<js模版引擎handlebars.js实用教程——为什么选择Handlebars.js>,该文已经做了详细解答.下面内容转自该文: 据小菜了解,对于java开发,涉及到页面…
js封装事件处理函数,兼容ie,支持事件代理 var eventUtil = { bindEvent: function(el, type, target, callback, popgation) { /** * @author zhangtian * @date 2017/11/16 * @desc 标准浏览器与ie事件兼容处理 * @augments el:事件源 type事件类型 target事件代理元素 callback回调函数 popgation是否冒泡 */ var caption…
hibernate3.jar, Hibernate的库,必须使用的jar包 antlr-2.7.6.jar, 语法分析生成器 语言转换工具,hibernate利用它实现HQL到SQL的转换 cglib-2.2.jar, CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包 commons-collections-3.1.jar 包含了一些Apache开发的集合类,功能比java.util.*强大 dom4j-1.6.1.jar, 用来读写XML文件 e…
据了解,对于java开发,涉及到页面展示时,比较主流的有两种解决方案: 1. struts2+vo+el表达式. 这种方式,重点不在于struts2,而是vo和el表达式,其基本思想是:根据页面需要的信息,构造出一个实体,这个实体中包含了界面需要的所有属性,通常这个实体是由N个表中的字段构成的,俗称vo.由于vo的属性可以是String.List.Map等等等,又可以vo套vo,因此这种方式非常灵活,也非常好用. 在后台对vo进行赋值,通过struts2封装到request中,然后在界面用el表…
Programming in LuaCopyright ® 2005, Translation Team, www.luachina.net Programming in LuaProgramming in Lua作者:Roberto Ierusalimschy翻译:www.luachina.netSimple is beautifulCopyright ® 2005, Translation Team, www.luachina.net Programming in Luai版权声明 <Pro…
文章分类:Java编程 本文基于struts2.1.8.1,xwork2.1.6 1.EL         EL(Expression Language)源于jsp页面标签jstl,后来被jsp2.0直接支持,因此可以在jsp页面中直接使用EL表达式.其使用语法为${expr},如${username},表达式expr中变量的获取,默认使用PageContext.findAttribute(String)方法,也就是从pageContext隐藏对象中查找,pageContext隐藏对象包含以下隐…
一下纯属个人总结摘抄,总结一起方便查看,解决疑问,有遗漏或错误,还请指出.       1,JSTL标签总结: a).JSTL标签有什么用?          JSTL是由JCP(Java Community Process)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签函数库.  Web程序员能够利用JSTL和EL来 开发Web程序,取代传统直接在页面上嵌入Java程序(Scripting)的做法,以提高程序的阅读性.维护性和方便性. b).什么是JSTL标签?  …
struts中的取map和list & jsp中取map和list <% List list = new ArrayList(); list.add("a"); list.add("b"); list.add("c"); request.setAttribute("l1",list); Map map = new HashMap() ; map.put("a","a");…