ot; >/WEB-INF/jason/index.jsp</result><result name="error">/WEB-INF/jason/login.jsp</result><result name="input">/WEB-INF/jason/login.jsp</result><result name="search" type="freemarker">/WEB-INF/templates/jsearch.ftl</result><interceptor-ref name="jLoginStack"/></action></package>(2)在ACTION中,进行设置:..........Hits hits = JLuceneUtils.luceneSearch(indexPath, searchMess);System.out.println("----------hits.length():" + hits.length());for (int a = 0; a < hits.length(); a++) {Document doc2 = (Document) hits.doc(a);System.out.println(searchMess + "的值是:"+ doc2.get("confContext"));ActionContext.getContext().getSession().put("jsearch_value",doc2.get("confContext"));} ActionContext.getContext().getSession().put("jsearch_cout", hits.length());ActionContext.getContext().getSession().put("jsearch_name", searchMess);(3)设置
模板文件:jsearch.ftl:<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] /><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>jason search result</title></head><body><table width="98%" border="0" align="center" cellpadding="5" cellspacing="0"><tr><td><strong>以面是jason用lucene查询的结果,共有${jsearch_cout}条符合:</strong></td></tr><tr> <#-- freemarker插值(如下,是利用EL语言,即将ACTION中的值先放入session/request/application) --><td>查询内容:${jsearch_name} ---
查询值:${jsearch_value}</td></tr><tr><td> <@s.url action="jLogin!login" id="login" /><a href="${login}">返回登录主页</a></td></tr></table></body></html>(4)如果要使用STRUTS2.0的标签,如上面.就要添加STRUTS2.0的标签库:web.xml添加:<servlet><servlet-name>JspSupportServlet</servlet-name><servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class><load-on-startup>1</load-on-startup></servlet>在jsearch.ftl最前面添加:<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] />
2.在java程序中使用FreeMarkerFreeMarker的模板就是一个.ftl文本文件,在该文件中使用了一些FreeMarker的特别标记,这些标记会动态显示,或者控制程序输出,如下面的模板文件代码:${name},你好!${msg}这里类似于${}的就是动态的内容,称作"插值".为了使用FreeMarker来将数据模型中的值合并到模板文件中,可按如下步骤进行:1,创建Configuration实例,该实例负责管理FreeMarker的模板加载路径,负责生成模板实例2,使用Configuration实例来生成Template实例,同进需要指定使用的模板文件3,填充数据模型,数据模型就是一个Map对象4,调用Template实例的process方法完成合并.下面是一个使用FreeMarker创建输出的Java