V1.0.1.R2014022701 1)版本创建、整理 2)版本内部发布测试 3)内部测试完成,发布 V1.0.4.R2014060901 1)fadfox.jar调整了Stringx类路径,有影响,要求版本在V1.0.4R2014060901以上 2)增加HttpSessionUser两个字段created和accessed V1.0.5.R2014071601 1)fadfox.jar增加JSON功能和HTTPC功能,涉及到HTTPD要求调整 2)增加foxpaper功能,对页面信息进行解析 3)修改文件上传实现类HttpUpload为HttpUploader,以防止和httpclient中HttpUpload同名,不好理解 V1.0.6.R2014081901 1)增加fadtemplate模块 2)调整StringBuffer成StringBuilder 3)增加AjaxClass中响应的一种新模式,支持{"responseStatus":0,"responseText":"成功"}格式 4)修改ErrorMsg和SuccessMsg不支持http://跳转问题 5)修改_Var增加变量顺序为,如果没有局部作用域,放置到page作用域,如果有局部作用域,查询局部作用域列表有定义则赋值,否则则最内层局部作用域赋值 V1.0.6.R2015011201 1)fadfox.jar调整DateTimes类方法,有影响,要求版本在V1.0.6R2015011201以上; 2)调整模板输出不支持空行 3)支持默认flex读起跨域文件crossdomain.xml为none 4)去除模板中Hmtlx,Stringx,Listx,Validatex的调用,因为Htmls,Strings,Lists,Validates已继承这几个类 V1.0.6.R2015031401 1)对context.xml的action的return参数改为redirect,重新定义return表示是否转向=true表示不处理template和redirect 2)对ActionForward和FoxHandler作了一下调整,增加强制处理错误和成功信息的判断 V1.0.7.R2015040901 1)计划增加fadfox.js,统一版本到1.0.7 2)支持ajax,window,tooltips,drag,input等 v1.0.7.R2015042101 1)修改AjaxClass中原来"未知错误"的BUG 2)修改AjaxClass支持先判断class是不是Action,如果是直接取Action的单例 3)发布fadfox_1.0.3R2015042101.js和对应的fadfox_ajax.js,fadfox_calendar.js,fadfox_dialog.js,fadfox_tooltip.js,fadfox_input.js等 4)删除原来的successMsg.fox和errorMsg.fox的定义,直接在FoxHandler中处理 5)Styles.bodyOverflowHidden改为Styles.htmlOverflowHidden,增加Styles.htmlOverflowScroll表示overflow-y:scroll V1.0.7.R2015052001 1)修改AjaxClass支持对Interceptor中设置redirect,在fadfox_ajax.js中重定向 2)增加request.setAttributeAjaxResult中responseStatus不支持小于0和不支持100-699之间 V1.0.7.R2015052501 1)支持多个配置*context.xml文件和多个宏*macro.ftl文件 2)FVariable支持instance=new/global,global表示读取Global中的实例,这样可以保证单例 V1.0.7.R2015060101 1)修改HttpSessionUser原为interface,改为class V1.0.8R2015060901 1)整理成V1.0.8 2)增加组件的支持 3)修改context.xml和格式,支持配置组件、宏定义和多个context.xml文件 4)修改HttpAccessLog中目录创建,改成递归创建 V1.0.8.R2015061701 1)修改Scripts.isNumericLen()方法中的BUG 2)在HttpSessionUser上增加参数列表,通过getValues,getValue,setValue,removeValue,hasValue进行管理 V1.1.0.R2015072901 1)修改cookie设置的BUG 2)调整server,listner,支持虚拟主机的配置 3)拆离template出来,成立新的项目fadfox_template.jar 4)修改原*.fox为/service/*目录,方便nginx等对路径进行转化 V1.1.0.R2015082501 1)增加HttpResponse中的addCookie方法 2)增加@RmiAnnotation,对RMIService和AjaxService进行改造 3)根据fadfox.jar整理成该版本 V1.1.1.R2015091401 1)使用JDK1.7编译 2)增加在RMI/AJAX时,先使用@ClassShortName检查是不是类简称 V1.1.2.R2015093001 1)要求使用V1.1.2版本的fadfox.jar 2)删除Variable,Rule的配置,暂时没有删dtd的说明 3)修改for调用方式,合并Documents到Xmlx中,删除dtd的说明,改为v1.1.0,增加forward V1.1.3.R2015112501 1)整理版本,用于生产系统 2)根据FTimer改动修改的版本 3)修改fadfox_drag.js V1.1.3.R2016010701版本: 1)修改查找Action顺序的BUG,改为按getContextListAll()进行查找 2)修改fadfox_dialog.js中F.prompt方法中$input获取路径错误的BUG 3)修改fadfox.js中Draggable中callback未传值时回调的BUG 4)优化fadfox_drag.js 5)修改fadfox.css中radio在IE浏览器中高度和背景为白色的BUG 6)修改IE11,两次请求user_agent不同导致session无法保存问题 V1.1.4.R2016020301 1)春节前整理版本号 2)修改fadfox_clipboard.js支持增加offsetLeft,offsetTop,offsetWidth,offsetHeight,background等属性 3)修改fadfox.js对offsetLeftAbs,offsetTopAbs修改支持IE和chrome加边框 V1.1.5.R2016050301 1)把资源部分拆出到fadfox_res.jar中,方便和fadfox_servlet.jar共享 V1.2.0.R2016072101版本: 1)调整包名com.zhiqim.fadfox.fadhttpd为com.zhiqim.fadfox.httpd,原来的fadhttp不好理解,现在正式使用httpd作为该产品的名称 2)调整包名com.zhiqim.fadfox.foxcontext为com.zhiqim.fadfox.httpd.context,表示context是httpd的一部分,原来分为两部分不好理解 3)增加HttpConnection, HttpContext, HttpRequest,HttpResponse修改成接口 4)调整原实现HttpConnection, HttpContext, HttpRequest,HttpResponse到bio包内,修改为HttpBioConnection等,为后续增加aio作准备 5)增加HttpHeader、HttpSender和HttpBioHeader、HttpBioSender,用于静态文件时无需创建复制的HttpRequest和HttpResponse的session,cookie,parameter等 6)调整包com.zhiqim.fadfox.http.context.validate到fadfox.jar中,并删除Validate类中的HttpRequest关联 7)删除ActionForward文件,修改Action类的execute方法只有HttpRequest一个参数,ActionForward的功能并入到HttpRequest。HttpResponse不大常用,如果需要用,可以从request.getResponse获取。 8)修改原FoxContext等命名为FtmlContext,统一使用Ftml命名,表示该上下文环境是FTML的上下文环境,原HttpContext改为StaticContext表示静态文件上下文环境 9)增加Context的接口,为fadfox_httpd_servlet.jar作适配用,如果需要把工程放置到Tomcat等容器下,只需增加fadfox_httpd_servlet.jar即可 10)增加@AnAction的支持,在Action类上,或SwitchAction的子类的方法上定义@AnAction,设置好actionPackage属性即可作到无需context.xml实现零配置,当然规约上还是要求context.xml的 11)修改原@RmiInterceptor为@AnInterceptor,@RmiNotFilter为@AnFilterNot等。支持配置在类和方法上,当类上有时,方法上可以不需要定义,如果方法不需支持类的,则加上@AnInterceptorNot作为例外设置 V1.2.1.R2016100801 1)删除ActionExecutor和ViewExecutor,合并到FtmlExecutor 2)修改原定义的viewExt配置为patternUrl,默认值修改为*.ftml,*.ftm,*.htm 3)修改验证码/service/vcode.jpg的展示,调整验证码sessionName原为vcode,修改为_vode_ 4)增加action中配置include字段,用于嵌套模板 V1.2.2.R2017010101 1)配合fadfox.jar调整HashMap为FHashMapSO 3)增加只提供RMI服务时无需配置resourceType,resourcePath 4)全面调整配置文件中配置项的规范,包括修改serverName为listen.domain,并支持多个 5)全面优化配置文件中加载顺序和管理,新增类FtmlConfig 6)优化Attribute读取顺序,优先顶级配置,再次根context.ftml配置,再次根context.xml,再次组件context.xml 7)优化Action读取顺序,优先根context.xml配置,再次根actionPackaget,再倒序循环组件 8)控制断点续传后的文件访问时最大不超时8M 9)删除AnStatic的支持 10)修改sendRedirect时也写入sessionId到cookie V1.3.0.R2017022701 1)调整验证码功能,默认高度和f-input相等28px 2)增加request.setValidateConfirm和request.setValidateGray设置验证确认信息和是否提交变灰 3)修改request中验证,默认非firefox变回不需要回退,firefox需要F && F.onload时才支持变灰 4)修改AnInterceptor,AnInterceptorNot为AnIntercept,AnInterceptNot,预留AnInterceptor用于拦截器定义 5)修改Session.getSessionValidateCode为Session.getSessionVerificationCode,单词VerificationCode更准确 6)删除validateScript的变量支持,请使用request.getValidateScript()方法 7)删除request.setAttributeNoHtmlFilter方法,修改request.setAttribute为不作过滤,过滤任务在模板中使用#{} 8)修改响应头reason增加Urls.encodeUTF8(reason) 9)增加/service/rmi和/service/ajax对表单方式的提交处理 10)迁移/service/upload(原大文件断点续传)和FadfoxUploader组件中,并修改为/service/uploadlarge,同时调整修改原/service/uploadone为/service/upload 11)修改SwitchAction,从V1.2.0开始三参数变一参数时的BUG V1.3.1.R2017052801 1)修改Asserts.asserts为Asserts.as()方法,使用三目运算断言,防止断言为真时需要初始化无意义的断言失败字符串 2)修改HttpRequest方法getSessionUser(Class),增加约束 V1.3.2.R2017080501 1)增加Chunked支持,配置最大2M/最小4K,采用chunked时暂不支持gzip 2)修改大文件下载时浏览器停止、关闭导致SocketException时,错误日志没必要打印,影响业务定位问题 3)修改RmiService针对form表单提交不作字段检查密码#号AJAX使用form表单时不能修改BUG 4)修改context.ftml中的变量定义支持完整表达式,原来只支持原型表达式和变量表达式 5)修改returnCloseDiaolog时,配置fadfox_res.jar作立即关闭,防止闪屏 6)增加f-call-iframe的支持,通过iframe提交表单和访问URL,保障有出错信息时,本页面不变化。 7)配合20170927的fadfox.jar版本,支持(F || window).alert 8)修改f-call-iframe中form参数frameTarget为fCallFrame=true,formIndex为fFormIndex 9)增加对话框中的请求识别,参数为fDialogFrame=true 10)增加request.setContentTypeNoCharset方法,表明contentType只支持mimeType,不需要charset V1.3.3.R2017110601 1)增加/service/rmi的处理中内置对象(context、session、sessionUser、log)的处理 2)修改UploadService中文件上传时指定目录的BUG 3)增加对Action方法上AnTransaction的检查 4)修改request.addParam(String, String)为request.addParam(String, Object) V1.4.0.R2018010101 1)正式启用ZhiqimHttpd名称,原所有Fadfox改为Zhiqim,原所有fadfox改为zhiqim,原所有FADFOX改为ZHIQIM,原com.zhiqim.fadfox改为org.zhiqim.kernel 2)转移Scripts,Scriptx,Styles到org.zhiqim.httpd.util 3)转移org.zhiqim.kernel.validate到org.zhiqim.httpd.validate 4)优化returnFrame页面,这里不需要zhiqim.js的支持,取parent.Z 5)转移bootstrap的处理,由原来在httpd.xml中配置,修改为在context.xml中配置,当前如果未配置取最后一个组件的bootstrap 6)转移websocket的处理,由原来在httpd.xml中配置,修改为在context.xml中配置,组件内websocket配置独立,通过@AnAlias(protocol)对应websocket类 7)增加对/zres/*的处理,表示组件内的资源文件,优先于context.xml的处理 8)增加对HTTP上下文中的contextXml的配置 9)增加上传时HttpUploader回传参数到cntParamMap中 10)增加Scripts.doReloadParent等方法 11)增加对成功和失败的消息判断 12)整理对ZhiqimML的支持,统一使用ZML代替Template的定义 13)增加getAttribute时,当为_Var支持ZmlVarRuntime运行时读数据 14)修改一个监听对应的所有HttpServer都关闭的时候,没有关闭监听的BUG 15)Class.forName修改成Classes.forName,防止ClassLoader不准确 16)修改zhiqim_context.xml组件配置resourcePath为path,删除actionPackage,改在context.xml配置属性,类似于bootstrap和websocket的配置 17)修改为只有根context才加载组件,组件不检查依赖组件 18)修改HttpSender对非chunked时重设contentlength,FileResourceEntity,ClassResourceEntity设置contentlength 19)增加request.isMicroMessager()判断是否是微信中的浏览器 20)增加request.isMobile()对MicroMessager的判断,如果有,也认为是mobile 21)增加request.getZhiqimClientType()和setAttribute("zhiqimClientType", "www":"mobile")方法 22)修改ZmlContext中initContext方法中,config.create失败的情况下,退出程序 23)增加HttpSessionManager中public List getSessionUserList(Class clazz);public PageResult getSessionUserPage(int pageNo, int pageSize, Class clazz);方法 24)增加对isMobile时zhiqim.mobile.css/js的检查,修改action加载时出错未退出工程的BUG 25)修改if (F && Z.onload)的判断未改到的F的BUG V1.4.1.R2018052801 1)增加静态文件过期时长配置expire 2)增加cookie.domain/cookie.port/cookie.path的配置,以支持虚拟目录/子域名使用相同的COOKIE 3)修改配置命名useCookie修改为cookie.use,matchType修改为pathExactPrior,sessionManager/sessionIdName/sessionTimeout/sessionParameter修改为session.manager/session.idName/session.timeout/session.parameter V1.5.0.R2019010101 1)修改工程名为zhiqim_httpd,采用zhiqim_kernel_v1.5.0_r2019010101库 2)修改默认配置文件名为/conf/config.xml和/conf/config.zml 3)增加配置文件中sessionUser列表,和action中增加tips,sessionUser项,修改alert为success 4)增加request.getParameterMatch(index)对应的方法 5)删除AIO的处理方式,整理BIO/NIO公共方法到抽象类中,默认BIO,使用Nginx作代理时,建议配置成BIO,因为Nginx默认采用HTTP/1.0协议 6)全面优化websocket在BIO/NIO三种IO下的处理方式 7)修改request.getSessionUser()当session中只有一个sessionUser时返回该值,多个时返回null 8)修改action,允许不指定sessionUser,默认取只有一个sessionUser的情况,多个时抛异常 9)增加加载config.xml时异常抛出异常和文件路径 10)整理HttpRequest/HttpResponse公开的方法,修改BIO合并NIO时的未关闭连接的BUG 11)修复HttpWebsocketMessage/HttpWebsocketMessageAsync中的对mask=false的BUG和length可能为0时isClose无内部的BUG 12)修改为Threadx处理方式,修改Tasker的继承为实现Task,定时任务Timer/Every改为Interval等 13)执行程序和源码分开打包