1. 程式人生 > >struts2專案中用freemarker自定義模板,s:component標籤來引用

struts2專案中用freemarker自定義模板,s:component標籤來引用

1 在WEB-INF下建立template/simple資料夾,在裡面新建模板檔案prop1.ftl
模板檔案內容為

<div>
<span>${parameters.p_title?html}:</span>
<#if parameters.p_size?? && (parameters.p_content?length>parameters.p_size?number) >
<#assign v_lastIndex = parameters.p_size?number-1/>
<span title="${parameters.p_content?html}">${parameters.p_content[0..v_lastIndex]?html}...</span>
<#else>
<span>${parameters.p_content?html}</span>
</#if>
</div>

2 jsp頁面中用s:component標籤進行引用

<s:component template="prop1.ftl" templateDir="/WEB-INF/template">
<s:param name="p_title" value="'姓名'"></s:param>
<s:param name="p_size" value="'6'"></s:param>
<s:param name="p_content" value="'張三'"></s:param>
</s:component>
<s:component template="prop1.ftl" templateDir="/WEB-INF/template">
<s:param name="p_title" value="'介紹'"></s:param>
<s:param name="p_size" value="'6'"></s:param>
<s:param name="p_content" value="'程式設計師'"></s:param>
</s:component>
<s:component template="prop1.ftl" templateDir="/WEB-INF/template">
<s:param name="p_title" value="'詳細地址'"></s:param>
<s:param name="p_size" value="'6'"></s:param>
<s:param name="p_content" value="'中華人民共和國遼寧省大連市'"></s:param>
</s:component>

頁面生成html為


<div>
<span>姓名:</span>
<span>張三</span>
</div>
<div>
<span>介紹:</span>
<span>程式設計師</span>
</div>
<div>
<span>詳細地址:</span>
<span title="中華人民共和國遼寧省大連市">中華人民共和...</span>
</div>

順便說下freemarker模板里居然是強型別的,要是不用?number這種函式給它轉成數字,就報
XXX is not a number, it is freemarker.ext.beans.StringModel