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

你可能感兴趣的:(freemarker,struts2)