一、 持久化对象(实体类):
1. 抽象类(BaseArticle)和实现类(Article)。
其中抽象类主要实现和数据库表中数据字典一一对应,只要包含字段、构造方法、set/get方法、重写了的equals和hashCode方法
实现类主要存放一些和实体类相关的一些常用的操作,比如说:在Article文章实体类里,需要对文章标题title进行裁剪长度,然后在前台freemarker模块直接调用
article.title(int num),但是前提是要在跳转这一视图的那个Action里声明article对象并且设置set/get方法,这就相当于在模版里可以直接拿到aritcle对象,随后的title(int num)方法,就是在调用实现类中声明的getTitle(int num)方法,而且只要在实现类中存在getXXX方法,在前台模版页面里就能用 对象.XXX 的方式调用方法。
这个用法可以省去很多繁琐的操作。
二、 FreeMarker模版
1. ftl模版通用标签
jeecms不仅仅有一些通用的强大的标签能用,而且还能自己自定义标签。
首先熟悉标签调用的流程为:
html页面调用某个标签并传递参数---->在ftl模版文件中找到标签调用的指定的方法----->找到ftl文件标签请求的Action----->
Action逻辑处理调用Dao层方法拿到数据----->传回html页面使用标签显示数据
2. 自定义标签
<#assign list = action.assignArticleList()>
<#list list as l >
${l.name}
</#list>
上面的例子中action之所以能直接调用是因为在跳转这个视图资源的Action中声明了这样一个action(必须要有set/get方法),并且这个action能获取到Action类中的方法,所以这样就能拿到自己想要的数据。
根据这个方法就能在网页中实现“局部加载”了吧。比如:在一个Action中仅仅只是跳转至一个视图资源(页面),而没有像我们平时经常性的先拿到页面所要的数据。然后在页面中根据我们的需要来拿想要的数据,并且这样操作的扩展性相对来说比较强,这样就能先显示视图,之后再加载页面各个部分的请求。