struts2 支援velocity的模板布局功能

2021-05-24 05:40:28 字數 1706 閱讀 1719

struts2 是支援 velocity 的,所以不需要什麼大規模更改.大多就是測試的時候按提示新增缺少的 class.這裡讓它支援 velocity 的布局功能

首先在專案中新建個類,路徑如下.這個類改寫了 struts2 裡的 velocity 類

web-inf下新建個檔案.命名:velocity.properties,內容如下(當然可以自己再加別的),用來存放velocity相關的一些資訊:

tools.view.servlet.layout.directory =/template/

tools.view.servlet.layout.default.template=de****t.vm

input.encoding=utf-8

output.encoding=utf-8

tools.view.servlet.layout.directory =/template/  這行假定所有的 .vm 模板檔案都在根目錄的

/template 資料夾下,下面的login.vm和blank.vm 都是在這個目錄下.

接著配置 struts.xml,在 struts 根節點下加入:

還是 struts.xml 下面這個配置用來輸出,注意黑體 :

/template/login.vm

這個是 login.vm 的**#set($layout = "blank.vm") 用來設定布局模板.

#set($layout = "blank.vm")

這個是 blank.vm 的**$ 就是要替換成 login.vm 的內容

$

執行測試...

注,struts2.velocity.velocitylayoutresult 這個類是google來的.當時忘了記源位址.對原作者表示感謝...

我修改的原版的其中幾行.用來設定模板路徑這些問題.畢竟有可能不是所有的 vm 檔案都一定在 velocity.properties 指定的目錄下.

當路徑 @/ 開頭時,如:#set($layout = "@/other/layout/blank.vm") 表示這路徑是從根目錄開始.無視 velocity.properties 的路徑配置.

在當前專案配置中假如:

#set($layout = "@/other/layout/blank.vm")  == /other/layout/blank.vm

#set($layout = "other/layout/blank.vm")  == /template/other/layout/blank.vm

在action 中設定 request.setattribute("layoutdir", "/abc/") ,可以指定result 裡vm的路徑.無視 velocity.properties 的路徑配置,注意這個是僅這個 action 的輸出結果會換路徑,其它action不受影響 .

在當前專案配置中假如:

#set($layout = "@/other/layout/blank.vm")  == /other/layout/blank.vm

#set($layout = "other/layout/blank.vm")  == /abc/other/layout/blank.vm

spring對struts2支援問題

存在不如意的地方就意味著存在bug。當我們像擺弄機器一般去利用這個那個框架的時候,很快,就陷入無休止的試驗,試驗這個那個的功能。創新簡直和我們絕緣。隨便抱怨一句。最近,公司同事利用spring struts2做個工具,涉及到隱私,故我把 簡單化 普世的原則啊 public class loginac...

struts2 支援的結果型別

在中的type配置 預設是dispatcher對應jsp頁面 chain action鏈式處理的結果型別 freemarker 指定使用freemarker膜拜作為結果 的結果型別 httpheader 用於控制特殊的http行為的結果型別 redirect 用於直接跳轉到其他url的結果型別 re...

Struts2支援表單多物件提交

struts2對集合型別的轉換提供了很好的支援,你可以用集合物件來儲存表單提交的資料,這對提交多個相同類別的資訊將非常有用 1 物件中宣告屬性objectlist action中宣告list 2 頁面迴圈list list objectlist as object assign index obje...