struts2
下浪淘沙
这个作者很懒,什么都没留下…
展开
-
struts2.3.1.2 的国际化问题
最近在做国际化相关的东西的时候,发现全局资源文件只能配置成,最开始是随便起的名称,然后发现在action 中调用getText()方法怎么都不能得到相关message,最后跟踪代码之后,发现默认的只有三个配置,其中的一个就是"mess",另外两个是在包里面配置的.不晓得是bug还是我没有配置好,没有时间去研究.欢迎拍砖.原创 2012-07-03 21:26:43 · 1406 阅读 · 2 评论 -
struts2 更改默认resulttype
最近碰到一个小要求,想让一些action返回的resultType默认为freemarker,开始是想在action上配置全局的result,然后name用一个表达式,然后type="freemarker",但是经过实验,发现不行,因为这些配置是在struts2一启动的时候就已经实例化了,再在action中使用表达式起不了作用,最后会报异常.于是去跟踪源码,最后在PackageConfig原创 2013-01-14 13:55:15 · 2500 阅读 · 0 评论 -
strut2 学习之验证框架五验证器的短路
验证器短路拦截器有可能被短路,下面看一个例子.请注意某些 和 添加了short-circuit 属性.<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-翻译 2012-11-23 14:37:33 · 1022 阅读 · 0 评论 -
struts2验证框架之三验证消息
本地化和参数化消息每个Validator or Field-Validator 元素必须有一个message元素,并且message元素有一个参数--key,但是不是必须的.message元素的body中定义的就是默认的消息,如果,验证失败,就会添加到Action中.这个Key 就是国际化的时候,资源文件的key,struts2会调用TextProvider(原文这里是LocaleAw翻译 2012-11-22 10:48:17 · 1485 阅读 · 0 评论 -
struts2学习之验证框架四规则文件的书写风格
规则文件的书写风格总得来说,XWork发布了两种类型的验证器,包括我们自定义的.Plain Validators / Non-Field validatorsFieldValidators平滑的验证器(比如表达式验证器) 不绑定于某个特定的属性.当我们定义平滑的验证器时,我们不需要指定属性名.属性验证器(比如邮箱验证器)是基于某个特定属性的,它们需要在*-validat翻译 2012-11-22 14:49:52 · 1185 阅读 · 0 评论 -
strut2 学习之验证框架二编写验证规则
编写验证规则我们有三种编写验证规则的方式:1. 每一个Action 类:验证文件名为ActionName-validation.xml (其中ActionName就是你的类名).2.每一个Action 别名:验证文件名为ActionName-alias-validation.xml(其中ActionName就是你的类名).3.继承或者实现了Action接口的类:XWork翻译 2012-11-21 15:04:05 · 953 阅读 · 0 评论 -
strut2 学习之验证框架一介绍
学习struts2也有很长一段时间了,虽然对它也研究了不少,但是很少记下来,今天终于决定记下来了,这是关于struts2的验证框架.主要是翻译的官方文档,以及在学习及工作的使用心得.我们可以使用XML文件和注解的方式来使用验证框架,当然我们还可以在Action中结合自己的代码使用.这个框架需要validation和workflow这两个拦截器和拦截器,这两个拦截器都已经在def翻译 2012-11-21 14:20:35 · 1610 阅读 · 0 评论 -
strut2 学习之验证框架七客户端js属性验证示例
在上集中,咱们聊到了在服务端进行属性校验,那么这集中我们将会学到如何在客户端进行校验.还是先看struts2的官方示例.下面是结果运行图:这个功能主要用了 标签的validate属性, validate="true">当客户端请求这个页面时,就会生成相应的js 代码,提交的时候就会进行校验.这些JS主要是写在form 的这个标签的模板中.你也许会问根据什么生成的J原创 2012-11-28 17:01:34 · 1107 阅读 · 3 评论 -
strut2 学习之验证框架八visitor验证器
在上一集中我们讲到了属性验证器,相对比较简单.在这一集中我们继续讲visitor验证器,该验证器的用处是当action 中的属性不是基本类型和字符串时,如,对象,数组,集合等.我们先新建一个类Person,就两个属性. private int id; private String name;省略了相应的get/set方法再新建一个Action--Pe原创 2012-11-30 17:51:44 · 2249 阅读 · 0 评论 -
strut2 学习之验证框架六属性验证示例
前面讲了这么多,下面我们看一下struts2的自带示例.先看一下截图当我不填任何内容的时候,直接提交,则会被验证框架拦截,并返回到我们的输入界面,并显示出验证消息.下面就让我们一步一步来实现这个功能吧.1.用myeclipse 新建web工程,并引入struts2的jar包,这个过程相信大家都已经很熟悉了,所以这里就省略了.2.新建一个类FieldValidat原创 2012-11-27 16:10:37 · 935 阅读 · 0 评论 -
struts2得到当前action的namespace
String nameSpace = ServletActionContext.getActionMapping().getNamespace();原创 2012-07-17 20:36:42 · 945 阅读 · 0 评论 -
关于struts2 的ActionContext.getContext().getParameters() 的一点儿总结
最近在做东西的时候,action都是从BaseAction中继承而来.BaseAction:protected Map request; protected Map session; protected HttpServletRequest httpRequest; protected Map parameters; public static final String AUTHORIZE原创 2012-06-30 14:18:02 · 7838 阅读 · 0 评论 -
struts2 convention result 使用chain
在使用struts2 的注解时,如果返回类型为chain时,要注意记得写location参数,不能不写.最初以为,不写location时,struts2会自动为我寻找相同的name的action,显然,没有这么智能.出现了一些莫名其妙的异常.TextParseUtil这个类的168行,经过我半天的调试,(昏啊,10+个拦截器搞的我头昏脑涨)最终发现是 ActionChainResult原创 2012-06-27 15:32:28 · 1582 阅读 · 0 评论 -
关于struts2 json插件的正则表达式写法的一点儿总结
最近碰到一个问题,需要将一个集体序列化成json对象,如:List list=new ArrayList();Person对象中有一个属性是Dept类型的,序列化的时候不想将此属性也序列化,也就是要排除该属性,可以在Result中加一个属性,excludeProperties,关键在于值写什么,这是个正则表达式,我还加了一个root参数,值是"list",也就是说让struts2从这个对象开始原创 2012-07-08 18:02:34 · 2315 阅读 · 1 评论 -
struts2 ongl 访问静态变量与访问枚举
使用struts, 在jsp页面中,可以通过ognl访问类的静态方法。表达式的格式为@[类全名(包括包路径)]@[方法名 | 值名],例如:@java.lang.String@format('foo %s', 'bar')。页面的输出结果就是:foo bar (注:内部类用$)在目前的项目中,我们使用了struts最新的版本2.1.2,当我在jsp页面中使用ognl访问类的静态原创 2012-06-25 15:37:28 · 5911 阅读 · 3 评论 -
ssh OpenEntityManagerInViewFilter 的一些总结
首先,在web.xml中配置这个过滤器,这个过滤器要配置在struts2的过滤器前,不然不起作用.其次,我最开始在service和dao方法中都加上@Transactional的标注,硬是花了我一天的时间,最后才试了一下,只在service层加这个标注,当然,我没有试在dao层加注解,不过各位可以试一下.有不同意见的朋友可以回复.谢谢.原创 2012-07-07 21:32:17 · 2972 阅读 · 0 评论 -
关于strust2 使用freemarker 指定模板路径前缀的纠结
这个问题本身不叫问题,可以直接写完整路径就行了,但是本人比较懒,不想写这么长一串,好吧,跟踪了半天的源代码,最后发现,org.apache.struts2.views.freemarker.FreemarkerManager这个类createTemplateLoader方法用来搞这事的, { TemplateLoader templatePathLoader = null;原创 2013-01-15 16:17:08 · 7360 阅读 · 2 评论