12 2013 档案
摘要:拦截器(Interceptor)是Struts 2的核心组件,Struts 2框架的大部分功能都是通过拦截器来完成的,例如数据校验,国际化,文件上传和下载等。为了实现这些功能,Struts 2框架提供了一个强大的拦截器策略。拦截器是Struts 2框架中的重要组成部分,它是AOP(面向方向编程)思想的一种实现。使用拦截器给开发过程带来了很多好处:可以把大问题分解成多个小问题以便分别处理,同时可以使Action更专注于处理的事情,而把其他的一些相关功能分配给各个拦截器来进行处理。在Struts 2中可将各个功能应的拦截器分开定义,每个拦截器完成单个功能,如果要运用某个功能就加入对应的拦截器,实现
阅读全文
摘要:非表单标签主要用于输出在Action中封装的信息,这在实际运用中是很常见的。1. actionerror标签标签主要用于输出错误信息到客户端,该标签将Action中的信息输出到页面中,实际上,该标签输出的信息是Action实例中的getActionErrors()方法的返回值。2. actionmessage标签标签主要用于输出提示错误信息到客户端,该标签将Action中封装的信息封装到页面中,实际上,该标签输出的信息是Action实例中的getActionMessage()方法的返回值。3. component标签标签主要用于使用自定义标签、模板、主题等。自定义标签、模板、主题可以通过标签来
阅读全文
摘要:前文:struts2:数据校验,通过Action中的validate()方法实现校验,图解如果定义的Action中存在多个逻辑处理方法,且不同的处理逻辑可能需要不同的校验规则,在这种情况下,就需要通过Struts2框架提供的validateX()方法来准确校验Action中的某一个方法,其中X表示处理逻辑的方法名。还是以前的例子,换一种写法,来说明validate()方法和validateX()方法的用法。1. 创建前台JSP页面表单录入页面:registerM.jsp 账号:${errors.username[0]} ...
阅读全文
摘要:Struts2框架提供了自己的异常处理机制,只需要在struts.xml文件中配置异常处理即可,而不需要在Action方法中来捕捉异常。传统方法public String execute() throws Exception { try{ //... return SUCCESS; }catch(SQLException ex) { // SQL异常,返回ERROR ex.printStackTrace(); return ERROR; }catch(InvalidInputException ex) ...
阅读全文
摘要:背景:要求将一个SQL Server2012版本中的数据库导入到Solr中。数据表中有一字段用来存储birthday日期字段,为nvarchar类型,长度为8,格式为:yyyyMMdd。导入Solr数据结构字段名为birthday,字段类型为date。Solr的date是不认yyyyMMdd格式的日期的,它要求格林威治时间格式,这就要求转换。示范:“19800103”转换为“1980-01-03T00:00:00.000Z”。思路一:在SQL查询数据时做转换,用到cast函数与dateadd函数。因为时区问题。语句如下:select top 100 dateadd(hour,8,cast(Bi
阅读全文
摘要:1. 几个重要的元素1.1 package元素package元素用来配置包。在Struts2框架中,包是一个独立的单位,通过name属性来唯一标识包。还可以通过extends属性让一个包继承另一个包,extends属性值就是被继承包的name属性值,继承包可以从被继承包那里继承到拦截器、Action等。在Struts2框架中是通过包来管理action、result、interceptor、interceptor-stack等配置信息的。包属性如下:属性说明name包名,作为其它包应用本包的标记extends可选属性,设置本包继承其它包namespace可选属性,设置包的命名空间abstact可
阅读全文
摘要:本文演示了JSP中获取HTTP参数的几种方式,还有action中获取HTTP参数的几种方式。1. 创建JSP页面(testParam.jsp) JSP页面中三种获取HTTP Parameter的方法: 1. 2. 3. 用户名: 备注: 2. 创建Action类(Paramet...
阅读全文
摘要:1. Web的三个核心标准万维网的核心标准有三个,分别是URL、HTTP和HTML。URL(统一资源定位符,Universal Resource Locator),为描述Internet上的网页以及其他资源地址提供了一种标识方法。本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名。绝对URL(absolute URL)显示文件的完整路径,这意味着绝对URL本身所在的位置与被引用的实际文件的位置无关;相对URL(relative URL)以包含URL本身的文件夹的位置为参考点,描述目标文件夹的位置。使用Windows系统的主机不区分URL的大小写,而使用Unix或Linux系统
阅读全文
摘要:DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。 它包含两个主要的部分:允许JavaScrip
阅读全文
摘要:国际化是指应用程序运行时,可根据客户端请求来自的国家/地区、语言的不同而显示不同的界面。Java语言内核基于Unicode2.1,提供了对不同国家和不同语言文字的内部支持。国际化的英文单词是Internationlization,因为单词过长,简称I18n。国际化的基本步骤1. 修改struts.xml文件,以加载全局资源文件 2. 创建不同语言的资源文件 2.1 首先,生成中文过渡文件:message_zh_CN_org.properties 2.2 其次,使用native2ascii.exe命令来生成message_zh_CN.properties文件 2.3 生成英文mess...
阅读全文
摘要:根据输入校验的处理场所的不同,可以将输入校验分为客户端校验和服务器端校验两种。服务器端验证目前有两种方式:第一种:参考:struts2:数据校验,通过Action中的validate()方法实现校验,图解第二种:使用validate()方法校验时,如果Web应用中存在大量Action就需要多次重写validate()方法,这使得代码非常繁琐。由于Struts2的校验框架本质上是基于XWork的validato框架,因此可以使用XWork的validator框架来对Struts2进行数据校验,以减少代码量。本文即讨论此种校验方式。1. 前台页面加入错误提示标签(registerX.jsp) ..
阅读全文
摘要:1. 背景struts2框架中有两个核心配置文件,其中struts.xml文件主要负责管理应用中的action映射,以及该action包含的result定义等。除此之外,struts2框架还包括一个struts.properties文件,该文件定义了struts2框架的大量属性,开发者可以通过改变这些属性来满足应用的需求。说明:struts.properties文件中的属性同样也可以在struts.xml文件中配置,只是源于struts配置文件模块化管理思路,将其分文件管理,增加了程序的可读性,以及降低了后期维护的难度。小型的项目可以将属性直接配置在struts.xml文件中。struts.p
阅读全文
摘要:18. datetimepicker标签18.1 拷贝JAR包在struts-2.x.x压缩包的lib目录中拷贝struts2-dojo-plugin-2.3.8.jar到WEB-INF/lib目录。18.2 JSP中加入引用参考下面的代码:18.3 在JSP的HEAD块中加入代码...18.4 加入datetimepicker标签代码: 其中displayFormat属性用来指定日期格式。效果:更多阅读:struts2:标签库图示,控制标签struts2:数据标签struts2:表单标签struts2:非表单标签
阅读全文
摘要:目录表单标签1. form标签2. submit标签3. checkbox标签4. checkboxlist标签5. combobox标签6. doubleselect标签7. head标签8. file标签9. hidden/textfield/password/textarea标签10. inputtransferselect标签11. label标签12. optiontransferselect标签13. select标签14. optgroup标签15. radio标签16. reset标签17. token标签18. updownselect标签完整代码表单标签Struts2表单标
阅读全文
摘要:目录数据标签1. a标签2. set标签3. push标签4. bean/param标签5. date标签6. include标签7. url标签8. property标签9. debug标签10. action标签11. i18n标签12. text标签数据标签1. a标签用于构造HTML页面中的超链接。属性:action: 指定超链接action地址href: 超链接地址method: 指定action调用方法id:namespace:2. set标签用于设置一个新变量,并将新变量放入指定的作用域中。属性:var: 可选,新变量的引用value: 可选,值scope: 可选,作用域,包括p
阅读全文
摘要:目录一、struts2标签库图示二、控制标签1. 条件判断标签(if/elseif/else)2. 迭代标签(iterator) 2.1 遍历List 2.2 遍历Map 2.3 遍历List(Action中的属性,List包含Bean) 2.4 遍历Map(Action中的属性,Map包含Bean)3. 集合标签(append/merge/subset/sort) 3.1 append标签 3.2 merge标签 3.3 subset标签 3.4 sort标签4. 分隔标签(generator)三、完整代码一、struts2标签库图示二、控制标签1. 条件判断标签(if/el...
阅读全文
摘要:目的 在struts2中使用JQuery、JSON、AJAX等技术处理用户请求,并返回结果。返回结果可以是以JSONObject的方式返回,也可以是以JSONArray方式返回结果。 实现 1. 创建表示层JSP(testJJA.jsp) 此JSP也用于处理返回结果,因为是AJAX方式提交的,并不需
阅读全文
摘要:JSON.stringify(),,将value(Object,Array,String,Number...)序列化为JSON字符串; JSON.parse(),将JSON数据解析为JS原生值。 1. stringify函数 方法:JSON.stringify(value,filter,indent
阅读全文
摘要:OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。片头(ognl.jsp) listStudent = new ArrayList(); listStudent.add(new Student(1, "张三", new Date())); listStudent.add(new Student(2, "
阅读全文
摘要:1. OGNL表达达符号"#"1.1 #用于访问OGNL上下文和Action上下文,#相当于ActionContext.getContext()注意:当系统创建了Action实例后,被保存到Value Stack中,无需书写“#“符号即可访问Action的属性:另外,struts提供了一些命名对象,这些对象与根对象无关它们只是存在于Stack Context中。访问这些对象需要“#“符号指明:说明:parameters对象:用于访问HTTP请求参数。例如:#parameters.username、#parameters['username'],等同于:req
阅读全文
摘要:JSON主要创建如下两种数据对象:由JSON格式字符串创建,转换成JavaScript的Object对象;由JSON格式字符串创建,转换成JavaScript的List或数组链表对象。更多关于JSON的信息,请参考:JSON概述及其在JavaScript与Java中的应用(整理)1. JSP页面中将对象转换为JSON字符串提交1.1 创建JSP文件(convertObject2Json.jsp) 需要提交的信息主体... 1.2 创建后台处理Action类package...
阅读全文
摘要:有两种方式可以实现在Action中使用Servlet的API。一种是使用org.apache.struts2.ServletActionContext类,另一种是使用com.opensymphony.xwork2.ActionContext类。struts2推荐的是使用第二种方式:使用ActionContext类来对request、session和application对象进行操作。方式一:使用ServletActionContext类(紧耦合)1. 创建控制层package com.clzhang.struts2.demo4;import org.apache.struts2.Servlet
阅读全文
摘要:struts2支持调用指定Action类中某一个业务方法。如果没有指定,则调用execute方法。1. 第一种实现方式,通过URL叹号参数1.1 创建Action类,带多个方法package com.clzhang.ssh.demo4;public class ListAction { public String listUser() { System.out.println("列出员工信息"); return "user"; } public String listSalarySum() { System.out.println("...
阅读全文
摘要:struts2支持多模块多配置文件开发。下面是一个仅包含两个模块的示范程序,包括财务、仓库模块。它们都有一个“caiwu“的Action,在各自的命名空间下;还有一个从财务转向到仓库的Action。1. 创建模块的控制层财务模块:package com.clzhang.ssh.demo3;// 财务类public class CaiwuAction { public String execute() { System.out.println("执行了财务统计模块"); return "toCaiwu"; }}仓库模块:package com.clzhan
阅读全文
摘要:手头一部HTC T329T手机,机上默认装载的软件实在太多了,居然占用了4页。用360手机卫士并不能删除系统软件(不能获取ROOT权限)。查网上查询,总结要删除系统软件步骤如下(本人不刷机,只是想删除软件,安装自己想装的软件): 1. HTC一键解锁 HTC一键解锁工具是刷机精灵团队旗下产品之一,能
阅读全文
摘要:无意中删除了三星S4手机中相机的相册。过程是这样的,用手机拍了几张照片,觉得最后那张拍得不好,想删除,于是进入相册,看到有那张照片的图标,选择,删除,悲剧发生了! 这里得说三星的不好:在相册中,相册文件夹仅显示一张大图片,整个手机拍摄照片的文件夹,就用我最后那张拍摄的照片代替,于是被我选择后删除了。
阅读全文