浏览器发起请求
在UJCMS搜索框中输入搜索关键字,点击搜索按钮,即可向服务器发起一个请求。

URL地址为:https://demo.ujcms.com/search?q=%E4%B8%AD%E5%9B%BD
Controller
这个请求由程序的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格式)返回给浏览器。

