- 浏览: 1682308 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1323)
- easyui学习 (21)
- jquery (51)
- css (21)
- js (103)
- html (19)
- java (95)
- 测试工具 (7)
- oracle (45)
- eclipse (9)
- spring (8)
- 开源框架 (111)
- struts (12)
- hsqlbd (2)
- h2database (2)
- maven (8)
- activiti (2)
- sql语句 (7)
- fmpp (1)
- apache (2)
- tomcat (6)
- jbpm (2)
- ant (20)
- mysql (10)
- 业务需求 (54)
- ralasafe (3)
- Quartz (4)
- mybatis (8)
- flex (6)
- html5 (16)
- apache工具 (4)
- hibernate (5)
- linux (109)
- powerdesigner (3)
- 报表 (1)
- log4j (2)
- junit (1)
- shiro (4)
- wap (3)
- php (28)
- mantis (1)
- poi (3)
- extjs (1)
- 安防 (34)
- 网络 (113)
- UltraEdit (1)
- 手机 (9)
- freemarker (19)
- jquery mobile (28)
- css3 (1)
- 微信 (9)
- nodejs (7)
- 项目管理 (14)
- 文档 (13)
- ibatis (22)
- ftp (3)
- spring MVC (9)
- groovy (2)
- AngularJS (19)
- nginx (15)
- 会计 (5)
- hive (1)
- 分布式 (8)
- 设计模式 (4)
- velocity (2)
- 爬虫 (2)
- git (1)
- thymeleaf (4)
- activemq (5)
- bootstrap (1)
- Spring Batch (1)
- memcache (20)
- ttserver (1)
- Jenkins (1)
- cxf (1)
- axure (2)
- 银行金融 (11)
- c语言 (2)
- 大数据 (4)
- drools (4)
- python (2)
- 交易所 (1)
- haproxy (1)
- dubbo (3)
- dos (3)
- 人力资源 (4)
- 支付 (1)
- Intellij IDEA (1)
- IPO (1)
- springboot (1)
- 质量管理 (7)
- svn (1)
- 其他 (8)
- 阿里云 (2)
- 多媒体设计 (2)
- 数据库 (4)
- wps (0)
最新评论
-
masuweng:
en
Native.js -
rmnjava:
我按照你的方法写的,不起作用啊
easyui验证的删除和恢复 -
rmnjava:
原地址打不开了呀
easyui验证的删除和恢复 -
sunteng:
sunteng 写道这是json 吗[{url:'aaa'}, ...
freemarker解析json数组 -
sunteng:
这是json 吗
freemarker解析json数组
记录日志这个在每个系统都会必须会用到的功能,实现方案也是非常多
我列出使用Struts2的拦截器拦截action的方式来实现业务日志的记录
自定义Interceptor的代码如下:
package com.test; import java.util.Map; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; import com.zbxsoft.flow.web.FlowDeployeAction; import com.zbxsoft.flow.web.FlowHisActivityAction; /** * 日志拦截器 * <p> * 通过继承Struts2的AbstractInterceptor实现日志 * </p> * @author 流浪鱼 */ public class LogInterceptor extends AbstractInterceptor { private String logName; private String logContent; @Override public String intercept(ActionInvocation ai) throws Exception { //取到session Map<String, Object> session = ai.getInvocationContext() .getSession(); //访问的Action类 Object action = ai.getAction(); //访问Action的方法 String method = ai.getProxy().getMethod(); //ai.invoke();// 执行被拦截action //流程定义日志 if (action instanceof FlowDeployeAction) { if(method.equals("data")){ logName = "流程定义列表"; logContent = "显示流程定义列表"; //logManager.saveLog(projectId,logName,logContent); 保存到数据库 } if(method.equals("delete")){ logName = "流程定义删除"; //ai.getStack().findValue("deploymentId")可以取到action里边的参数值 logContent = "删除ID为:"+ai.getStack().findValue("deploymentId")+"的流程定义"; } } //流程活动历史日志 if (action instanceof FlowHisActivityAction) { if(method.equals("data")){ logName = "流程活动历史节点"; logContent = "显示流程活动节点历史数据"; //logManager.saveLog(projectId,logName,logContent); 保存到数据库 } } System.out.println("===============================进入LogInterceptor Start==================="); System.out.println("访问的Action为"+action+" 对应方法为:"+method); System.out.println(logName +" "+logContent); System.out.println("===============================进入LogInterceptor End==================="); if(session.get("user")!=null){ return Action.INPUT; }else{ return ai.invoke();// 执行被拦截action; } } }
struts2的配置自定义的拦截器代码如下:
<interceptors> <!-- 自定义日志拦截器 --> <interceptor name="log" class="com.test.LogInterceptor" /> <interceptor-stack name="crudStack"> <interceptor-ref name="store"> <param name="operationMode">AUTOMATIC</param> </interceptor-ref> <interceptor-ref name="paramsPrepareParamsStack" /> <interceptor-ref name="log"/> </interceptor-stack> </interceptors> <default-interceptor-ref name="crudStack" />
- LogInterceptor.rar (1015 Bytes)
- 下载次数: 2
发表评论
-
s:property用法
2014-08-20 16:32 535获取parameters中的属性<s:property ... -
struts2 标签 输出时间格式
2014-08-15 17:06 423使用<s:date>标签,有一个forma ... -
struts2字符串分割
2014-07-22 15:46 5501.s:generator标签概述 属性名 ... -
升级struts2版本为2.3.15.1报java.lang.NoSuchMethodError: ognl.SimpleNode.isEvalChain(Lo
2013-07-27 13:23 6214今天为了解决struts2的漏洞时升级到2.3.15.1时报 ... -
struts2值传递转换为数字和日期情况
2013-07-03 15:04 749在用struts2进行值传递的时候,发现有两个字段为useD ... -
struts2的gbk编码乱码
2013-06-24 12:53 461新做的一个项目,客户比较变态,要求项目编码必须是gbk,所有 ... -
struts2的gbk编码乱码
2013-06-24 12:51 889新做的一个项目,客户比较变态,要求项目编码必须是gbk,所有 ... -
Struts2的convention插件,在方法中使用Action注解跳转到其他jsp页面
2013-06-19 21:44 1313我们都清楚使用convention插件可以是struts2为 ... -
Struts2的数据串问题
2013-06-18 14:16 738在使用spring加struts2的架构时,当访问用户多的时 ... -
Struts2添加SSL功能
2013-04-15 13:12 2943最近遇到问题了,要用到SSL,,比如某个连接https:// ... -
struts2的标签
2012-03-31 14:06 1124checkbox复选框使用 public final s ...
相关推荐
根据提供的文件信息,我们可以推断出这是一篇关于整合Struts2、Hibernate和Spring框架的文章。下面将基于这些信息详细阐述这些技术的关键知识点。 ### Struts2+Hibernate+Spring框架整合 #### 一、概述 Struts2、...
"JAVA的内省机制(introspector)与反射机制(reflection)" JAVA 的内省机制(introspector)和反射机制(reflection)是两个重要的概念,在 JAVA 编程中扮演着至关重要的角色。那么,什么是内省机制和反射机制?它们...
在提供的代码示例中,`test01()` 函数展示了如何使用`Introspector.getBeanInfo(Student.class).getPropertyDescriptors();` 获取Student类的所有属性描述符。属性描述符(PropertyDescriptor)封装了JavaBean的...
- **`struts.objectFactory`**:指定Struts2使用的对象工厂为Spring。这意味着Struts2中的Action对象等将由Spring容器创建和管理。 #### 3.1.2 国际化编码 ```xml <constant name="struts.i18n.encoding" value=...
Neo4j GraphQL 库(graphql--neo4j-introspector-1.0.1.zip) 源代码。 Neo4j GraphQL 库是一个高度灵活、低代码、开源的 JavaScript 库,可通过利用连接数据的力量为跨平台和移动应用程序实现快速 API 开发。 ...
Neo4j GraphQL 库(graphql--neo4j-introspector-1.0.1.tar.gz) 源代码。 Neo4j GraphQL 库是一个高度灵活、低代码、开源的 JavaScript 库,可通过利用连接数据的力量为跨平台和移动应用程序实现快速 API 开发。 ...
由于它与AWT的紧密依赖,因此无法轻易将其从java.desktop模块中删除,从而导致任何使用java.beans包的第三方库都依赖于所有java.desktop类,从而在JVM安装中增加了12mb的额外开销,并且一些额外的内存使用情况。...
资源分类:Python库 所属语言:Python 资源全名:plone.introspector-0.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
但是,当Spring与其他框架(如Struts、Quartz)一起使用时,其他框架可能没有妥善处理`Introspector`的缓存清理,此时配置`IntrospectorCleanupListener`就显得尤为重要。 配置`IntrospectorCleanupListener`时,...
骨干内省者骨干应用程序自省-生成应用程序组件的树状图(使用d3.js)要求骨干应用装有require.js的模块预习 还检查TodirMVC实现的示例目录安装在您的main.js中require ( ['backbone' ,'views/app' ,'routers/router'...
使用 Atom 包管理器,它可以在设置视图中找到,或者从命令行运行apm install php-introspector 。 您还需要安装软件包。 用法 目前,自动完成依赖于从远程(或本地)服务器获取建议。 它从文件中读取此服务器的位置...
2. `getReadMethod()`:获取用于读取属性值的方法,通常是`get`开头的方法。 3. `getWriteMethod()`:获取用于设置属性值的方法,通常是`set`开头的方法。 4. `hashCode()`:返回对象的哈希码,用于对象的唯一标识。...
Introspector使处理源代码的编程工具(例如编译器)能够以标准且中立的方式进行通信,从而减少了意外的编程成本。 http://github.com/h4ck3rm1k3/
BeanUtils是由Apache公司开发的针对操作JavaBean的工具包。...但是由Apache公司开发的BeanUtils会更常用,同时,BeanUtils还需要配合第三方日志工具来使用,这里我们同样使用Apache公司的common logging
4. `commons-logging-1.1.jar` - Apache Commons Logging,一个日志抽象层,允许应用程序使用不同的日志实现。 5. `ezmorph-1.0.4.jar` - EzMorph库,用于对象转换。 6. `json-lib-2.2.2-jdk15.jar` - JSON库,提供...
4. **日志记录**:在记录日志时,将数据结构化为JSON格式便于后续的日志分析和处理。 #### 六、总结 以上介绍了如何在Java中将各种类型的数据转换为JSON格式的方法和技术细节。这种转换对于现代Web开发来说至关...
本篇文章将深入探讨如何使用Betwixt库实现XML与Java类之间的互转解析。 首先,我们需要理解Betwixt的基本概念。Betwixt是一个XML绑定工具,它允许开发者通过注解或XML配置文件来映射XML结构与Java类的属性。这种...
Eclipse 平台的 COM 内省器和代码生成器