摘要: 一、作用可以作为一个数据中转站,用在前台和后台数据传递二、生命周期ValueStack的生命周期是随着request的创建而创建,随request的销毁而销毁。三、结构OgnlValueStack类实现了ValueStack接口,类中有两个至关重要的东西:1.CompoundRoot root 根对象栈通过OGNL可以访问根对象相关联的其他对象CompoundRoot继承了ArrayList类,即使一个集合,详见源码CompoundRoot类。访问根对象栈时直接写对象名,或者#root.对象名(context中有root的引用)1.group.org.orgId2.#root.group.or 阅读全文
posted @ 2013-11-05 13:34 _流年 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 一、Struts 2支持以下几种表达式语言:OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言;JSTL(JSP Standard Tag Library),JSP 2.0集成的标准的表达式语言;Groovy,基于Java平台的动态语言,它具有时下比较流行的动态语言(如Python、Ruby和Smarttalk等)的一些起特性;Velocity,严格来说不是表达式语言,它是一种基于Java的模板匹配引擎,具说其性能要比JSP好。Struts 2默认的表达式语言是OGNL,二、它相对其它表达式语言具有下面几大优势:支持对象方法调用 阅读全文
posted @ 2013-10-31 14:04 _流年 阅读(432) 评论(0) 推荐(0) 编辑
摘要: Struts2支持的不同类型的返回结果为:type name说明dispatcher缺省类型,用来转向页面,通常处理JSPchain转向另一个action,用来处理Action链redirect重定向到一个URLredirectAction重定向到一个Actionstream向浏览器发送InputSream对象,通常用来处理文件下载freeMarker处理FreeMarker模板HttpHeader用来控制特殊的Http行为Velocity处理Velocity模板XLS处理XML/XLST模板plainText显示原始文件内容,例如文件源代码S2PLUGINS:Tiles结合Tile使用 阅读全文
posted @ 2013-10-31 13:23 _流年 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 一、过滤器介绍 在Servlet 2.3中定义了过滤器,它能够对Servlet容器的请求和响应进行检查和修改。 Servlet过滤器能够在Servlet被调用之前检查Request对象,并修改Request Header 和 Request内容。 Filter可以过滤Servlet,JSP,HTML。二、Javax.Servlet.Filter 所有的Filter都必须实现javax.servlet.Filter接口,并实现接口中的三个方法。 1.Filter 初始化方法,Servlet容器创建过滤器实例后调用该方法,该方法读取web.xml中的过滤器的初始化参数。 Filter的... 阅读全文
posted @ 2013-10-25 10:33 _流年 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 零配置并不是没有配置,而是通过约定大于配置的方式,大量通过约定来调度页面的跳转而使得配置大大减少。使得Action等配置不必写在Struts.xml中。convention-plugin的约定1. 默认所有的结果页面都存储在WEB-INF/content下,你可以通过设置struts.convention.result.path这个属性的值来改变到其他路径。 2. 默认包路径包含action,actions,struts,struts2的所有包都会被struts作为含有Action类的路径来搜索。你可以通过设置struts.convention.package.locators属性来修改这.. 阅读全文
posted @ 2013-10-23 18:13 _流年 阅读(448) 评论(0) 推荐(0) 编辑
摘要: JQuery 插件开发:类级别开发,开发新的全局函数对象级别开发,给Jquery对象开发新方法一、类级别开发 -定义全局方法jQuery.foo = function() { alert('This is a test.'); }; 采用命名空间,可以避免命名空间内函数的冲突。jQuery.apollo={ fun1:function(){ console.log('fun1'); }, fun2:function(){ console.log('fun2'); } } 二、对象级别开发 -定义jQu... 阅读全文
posted @ 2013-10-23 17:27 _流年 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 下面代码可以把一个页面容器中的表单元素封装成一个json对象。(function($){ $.fn.serializeObject=function(){ var inputs=$(this).find("input,textarea,select"); var o = {}; $.each(inputs,function(i,n){ switch(n.nodeName.toUpperCase()){ case "INPUT": ... 阅读全文
posted @ 2013-10-23 17:16 _流年 阅读(864) 评论(0) 推荐(0) 编辑
摘要: 不同浏览器或者版本之间对于console对象的支持不尽相同,而console方法在开发调试过程中都是不错的工具。难道要在上线前把所有console.xxxx去掉以保证某些浏览器不报错么。其实可以变通解决。浏览器报找不到console对象,那我们就手动构造一个接口完全一致的console对象 置于window中。这里采用了空方法和空对象。如此一来即使在很old的浏览器中,含有console.xxxxx的代码依然不会报错,完美运行。下面附上修复兼容代码,要置于置于第一句console.xxxx调用之前,否则没有意义。(function (){ //创建空console对象,避免JS报错 ... 阅读全文
posted @ 2013-10-23 17:11 _流年 阅读(1426) 评论(0) 推荐(1) 编辑