freemarker是看到大家的推荐开始强制自己学习的,毕竟不能总用io来实现模板的功能啊,而且很多牛人都说这个东西好,自己也不免心动。
一段时间下来,感觉freemarker这种模板技术确实是好,而且功能很强,但是总是感觉它的“水”太深,一般的程序员在使用的时候会遇到很多困难。而且freemarker远远没有velocity的影响力大,其社区的活跃度也小了很多,这也是学习曲线相对比较高的原因。robbin曾经说半天时间就能熟练掌握他,我想这时对一个经验丰富的人员说的吧。我的学习过程绝对不是半天能熟练掌握的。也许这就是差距吧。
言归正传。准备实现一个功能,需要一个form表单,里面有一个r ...
Beanpublic class GroupModel {
private String id;
private String userID;
private String name;
private String desp;
public String getDesp() {
return desp;
}
public void setDesp(String desp) {
this.desp = desp;
}
public String getId() {
return id;
}
public void setId(S ...
1、说说为什么使用lazy
当使用Hibernate中的one-to-many、many-to one、many-to-many关系映射的时候,一个对象中会包含一个或多个Set来关联其他的对象。例如:user-groups,当程序取user对象时,如果一个用户有多个自定义组,那么程序将把组的信息也读取出来,在log中可以看到两个sql的输出。但是在页面的显示上,也许并不需要显示这个用户相关组的信息,这样系统的消耗就白白浪费了,于是hibernate提供了lazy(延迟加载)的方法来避免这一情况的发生,我们只需要在user.hbm.xml中设置lazy=true,就能实现延迟加载。<set ...
以下是以一个注册的例子的实现来备忘关于webwork中view层的使用,主要是基于freemarker技术的。
Q:是否应该使用tag。
A:一直比较困惑,其实个人不太主张使用tag,应为会把页面的展现和tag绑定的比较紧,对于css的调整,页面的布局来讲,不懂tag的人是很难上手的。目前的项目其实完全可以做到页面和代码逻辑分离,这样,js+css的人可以重点吧精力放在实现页面上,而逻辑部分由程序员实现。但是通过使用的不断增多,感觉tag在某些方面上还是很有优势的,程序员可以用tag做快速的界面开发,先把逻辑和流程走通,搭起一个原型来(当然这里的原型已经比较接近最后的成品了),然后再和vie ...
接触模板技术的时间不是很长,原来一直通过io的方法去自己生成静态文件,后来发现了模板技术,大家都在学习,我也就跟风是的加入了行列,已开始接触的是velocity,后来看了je上的大牛的介绍,开始试用Freemarker。使用模板技术除了在web app中用来显示view之外,还有一个典型的应用就是将页面静态化,这也是提高网站性能的一个基本的办法。我的目标是这样的,通过一套模板在显示页面的同时,自动生成静态页面,并保存在用户自己的目录中。
已开始看了网上介绍的例子,基本上是通过freemarker的template来实现的,于是自己也做了这样的例子,做一个通用的接口,然后实现页面的静态化功能。 ...
今天发出现一个不错的eclipse插件,用来写web程序中的资源文件的,原来的办法是写一个properties文件,然后通过一个批处理文件用native2ascii 再转码一下,现在通过这个工具,直接在eclipse里面建立一个资源文件,然后编写内容,然后再保存就ok了,而且还支持查询。eclipse里面显示的是你编辑时的文字,保存后,通过文本编辑器,可以看到内容已经转码了。
软件:http://www.guh-software.de/jinto.html
Webwork下的文件上传看了很多的文章收获不少,目前比较简单的方式是通过webwork提供的FileUploadInterceptor来实现的,这个拦截器在使用的时候是非常方便的,通过这个拦截器可以自动获得上传文件的文件名、文件类型、文件三个部分。然后用户可以再进行后续的处理,包括将文件信息存入数据库、移动文件到制定的文件夹等。对于这个拦截器的工作原理大致是这样的,用户执行Action的时候,拦截器构造request:
java 代码
HttpServletRequest request = (HttpServletRequest)  ...
看了很多人都说Webwork最大的特点是拦截器 Interceptor,自己也准备通过这个来做一下关于用户身份验证的问题。需求很简单,当受到一些请求的时候,校验用户是否已经登陆,如果没登陆,自动导向登陆界面。
在这个功能中,我通过Cookie来实现用户身份的校验,当然,用Session的方法相同,这里就不写了,首先是配置文件
xml
<interceptors>
&l ...
webwork中通过dwr来实现页面中的form验证,这种ajax的验证方式相对于其他javascript的客户端验证方式的好处就是,已经变成了webwork中的一个tag,可重用性比较强,一旦配置成功,以后可多次使用,减低了程序员的重复劳动。缺点就是页面的格式不能随意调整。下面将具体的过程叙述如下(根据showcase为例):
一、配置web.xml
在web.xml中添加对dwr的支持
xml 代码
<servlet>
&nb ...
${Request["a"]}
${RequestParameters["a"]}
${Session ["a"]}
${Application ["a"]}
${JspTaglibs ["a"]}
注意RequestParameters等内部对象时常不能获得所以要:
${RequestParameters?default({})["_errors"]?default("params")}
${Request["request&qu ...
两天的时间,终于把webwork+freemarker+FCKeditor配置出来了,谁让咱是菜鸟呢!
由于想使用模板技术,所以决定在webwork中使用freemarker。但是关于FCKeditor和这些的结合并不是非常熟悉,针对项目的需要,主要有如下需求:
可自定义FCKeditor的功能按钮(toolbar)
在.ftl文件中使用
两个简单的功能,却让我花了不少的时间,看来是老了
对于第一个需求的解决:
首先从网上下载了FCKeditor-2.3在线编辑器,可以直接用的(java版) 中的附件,这个工程将FCKeditor作为taglib使用,在 ...
调试了半天,终于把系统配置了起来,具体环境如下,webwork+spring+hibernate
先看web.xml
xml 代码
xml version="1.0" encoding="ISO-8859-1"?>
>
<web-app>
<display-name>WebWork& ...
对于url的后缀(.action),可以在webwork.properties中进行配置,比如.do等
webwork.serve.static这个属性决定webwork/static下的文件是否能被服务器解析,缺省为true,例如,如果你设置为false,那么tooltip.gif就不能被访问到了
下载webwork的资源,其中包括两个部分:webwork和xwork,大概用了一天的时间,两个东西终于下载完了,服了
webwork的包中包含全部的webwork所需的文件,其中还包括几个example,当然,下面的安装并不是基于这些example的
eclipse里面新建一个工程,将webwork和xwork的jar文件拷贝到lib目录中,同时将其他所需的jar文件,其实整个配置的工程主要是配置两个文件web.xml和xwork.xml
web.xml
java 代码
<web-app> &nb ...
很长时间了,大家都在说webwork,都在说struts2要收并webwork,至于好坏,不是我这种一般人关心的,真正能给我们程序员带来好处,我想才是最重要的。
...







评论排行榜