Struts2与smarty4j的集成方法
颜骁
2023-12-01
今天看了一下java版的smarty, 因项目中常用struts2,因此些了一个十分簡單的DEMO, 作為備忘寫下來。
一:官方網站:http://code.google.com/p/ordinary/
二:smarty參考資料:http://www.php100.com/manual/smarty/
三:DEMO目錄及源文件见附件:
四:所需jar包:asm-3.3.1.jar和smarty4j-1.0.0-jdk5.jar
五:文件導入位置:
1. /WebContent/page/test.smt
2. Class:struts.xml
<bean class="cia.view.smarty4j.Smarty4jManager" name="smarty4jManager" />
Class: struts/struts_base.xml
<result-types>
<result-type name="smarty" class="cia.view.smarty4j.SmartyResult"/>
</result-types>
3. Class: struts/test/transTest.xml
<action name="smarty" class="cia.test.transtest.action.SmartyAction">
<result name="success" type="smarty">/page/test.smt</result>
</action>
4. /src/cia/test/transtest/action/SmartyAction.java
5. src/cia/view/smarty4j/ctx/SmartyContext.java
6. /cia/view/smarty4j/ScopesHashModel.java
7. /src/cia/view/smarty4j/Smarty4jManager.java
8. /cia/view/smarty4j/SmartyResult.java
六:smarty4j包很小,標籤易於擴展,據網上資料性能非常出色;新增行函数需要继承org.lilystudio.smarty4j.statement.LineFunction;新增区块函数需要继承org.lilystudio.smarty4j.statement. BlockFunction;都是通过设置parameter这个属性来定义默认的参数格式;擴展好的函數代碼放在org.lilystudio.smarty4j.statement.function或org.lilystudio.smarty4j.statement. modifier包中即可,新增函數類以$開頭。