在UJCMS搜索框中输入搜索关键字,点击搜索按钮,即可向服务器发起一个请求。
URL地址为:https://demo.ujcms.com/search?q=%E4%B8%AD%E5%9B%BD
这个请求由程序的com.ujcms.cms.core.web.frontend.SearchController#search
方法处理。
该方法没有做太多事情,只是返回到对应的搜索模板sys_search
。
Controller返回的sys_search
模板,会根据当前站点ID和模板主题,对应到具体的模板,如templates/1/default/sys_search.html
模板使用的是Freemarker技术。
模板中有使用自定义标签EsArticlePage
获取数据。
EsArticlePage
标签的对应的处理为com.ujcms.cms.core.web.directive.EsArticleListDirective
该方法会查询Lucene或ES,返回相应的结果。
模板拿到数据后,使用循环标签#list
,将数据以某种格式展现。
最后程序会将模板生成的内容(通常是HTML格式)返回给浏览器。