ava代碼以下:
web
- import freemarker.core.Environment;
- import freemarker.template.ObjectWrapper;
- import freemarker.template.TemplateDirectiveModel;
-
- public class FMAppRankDirective implements TemplateDirectiveModel {
-
- @Resource(name = "appRankService")
- private AppRankService appRankService;
-
-
- @SuppressWarnings("unchecked")
- @Override
- public void execute(Environment env, Map params, TemplateModel[] loopVars,
- TemplateDirectiveBody body) throws TemplateException, IOException {
-
-
- Integer length = DirectiveUtils.getInt("length", params);
- Integer mtypeCode = DirectiveUtils.getInt("mtypeCode", params);
- Integer typeCode = DirectiveUtils.getInt("typeCode", params);
- Integer rankMode = DirectiveUtils.getInt("rankMode", params);
- ArrayList<App> rankList = appRankService.getRankList(length, mtypeCode, typeCode, rankMode);
-
- env.setVariable("appRankList", ObjectWrapper.DEFAULT_WRAPPER.wrap(rankList));
- if (body != null) {
- body.render(env.getOut());
- }
- }
- }
頁面引用有多種方法:
一: spring
- <bean id="fp" class="xxxx.tag.FMAppRankDirective"></bean>
- <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
- 此處省略
- <property name="freemarkerVariables">
- <map>
- <entry key="fp" value-ref="fp"/>
- </map>
- </property>
- </bean>
而後頁面直接用 <@fp 的方式調用,
二:在頁面上直接導入,如:
<#assign fp= "xxxx.tag.FMAppRankDirective"?new()>
推薦用第一種app