国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

sitemesh的問題及解決

2019-11-18 16:19:50
字體:
來源:轉載
供稿:網(wǎng)友

   再說 sitemesh 的問題,同樣是做 openfans 網(wǎng)摘功能出現(xiàn)的。做好了 IE 插件,有 fans 反饋說彈出頁面太大,這也難怪,用了 sitemesh , head 和 footer 都在頁面上,想縮小頁面,肯定得把 head 和 footer 都去掉,做個干凈點的。既然用了 sitemesh 肯定是希望最方便的搞定這個,而不用動任何邏輯(包括頁面邏輯)。這個好辦,文檔里有說,通過在 sitemesh.xml 中增加


Word-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">sitemesh的問題及解決 < mapper
sitemesh的問題及解決
sitemesh的問題及解決            class = " com.opensymphony.module.sitemesh.mapper.ParameterDecoratorMapper " >
sitemesh的問題及解決
sitemesh的問題及解決            < param name = " decorator.parameter "  value = " decorator "   />
sitemesh的問題及解決
sitemesh的問題及解決            < param name = " parameter.name "  value = " confirm "   />
sitemesh的問題及解決
sitemesh的問題及解決            < param name = " parameter.value "  value = " true "   />
sitemesh的問題及解決
sitemesh的問題及解決        </ mapper >
sitemesh的問題及解決

   就能搞定,這樣只需要使用參數(shù)如 saveSnippet.Html?decorator=simple&confirm=true ,就能讓它使用指定的 decorator 。然后做一個去掉 head 和 footer 只保留必要的 js 和 CSS 引用的 simple.jsp 頁面,同時在 decorator.xml 中配

sitemesh的問題及解決 < decorator name = " simple "  page = " simple.jsp " ></ decorator >

就應該可以搞定。

但怎么測,就是不使用這個 simple decorator 。沒辦法,只好跟進 sitemesh 源碼中去調試,進入 ParameterDecoratorMapper 類,它繼承了 AbstractDecoratorMapper 類,然后有一個 init 方法一個 getDecorator 方法。各打一個斷點, init 方法在 tomcat 啟動就會執(zhí)行,也正常初始化了, getDecorator 方法卻始終不調用,一時想不出辦法。看到篇文章說不自己寫 sitemesh.xml 而使用自帶的 com/opensymphony/module/sitemesh/factory/sitemesh-default.xml 也可以,于是備份并刪除我寫的 sitemesh.xml ,居然成功了。為什么我寫的就不行呢?差別一是我的簡化了很多,只有


sitemesh的問題及解決 < mapper
sitemesh的問題及解決
sitemesh的問題及解決     class ="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper" >
sitemesh的問題及解決
sitemesh的問題及解決            < param  name ="config"  value ="${decorators-file}"   />
sitemesh的問題及解決
sitemesh的問題及解決        </ mapper >
sitemesh的問題及解決

和剛加的

ParameterDecoratorMapper ,二就是順序,我的 ParameterDecoratorMapper 放在了 ConfigDecoratorMapper 后面,會不會是順序原因呢,調換一下,果然成功了。問題是解決了,原理呢?再花點時間跟一下代碼了解下原理,原來使用了 Factory ,它會調用各個配置的 Mapper 的 init 方法,并放入 map 中,然后到時選擇一個 Mapper ,如果符合條件就使用,否則繼續(xù)往下找。這里就有了順序的問題,因為我在 decorator.xml 中使用了
sitemesh的問題及解決<decorator name="default" page="default.jsp">
sitemesh的問題及解決
sitemesh的問題及解決        <pattern>/*.html</pattern>
sitemesh的問題及解決
sitemesh的問題及解決    </decorator>
sitemesh的問題及解決

,這樣如果 ConfigDecoratorMapper 放在前面,他就先找這個 Mapper ,一看 saveSnippet.html?decorator=simple&confirm=true ,符合 pattern 啊,就使用它了,另一個 ParameterDecoratorMapper 根本得不到機會,所以也進不了它的 getDecorator 方法。換了順序就是它先進去,所以執(zhí)行,其它的 url 也是先找它,但不匹配,就又交給 ConfigDecoratorMapper 了。呵呵,問題也解決了,對 sitemesh 的認識又進了一步。進入討論組討論。

(出處:http://m.survivalescaperooms.com)



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 光泽县| 县级市| 绍兴市| 福安市| 贵港市| 武邑县| 铜鼓县| 文化| 白水县| 兰西县| 呼和浩特市| 河南省| 清涧县| 廉江市| 大足县| 修水县| 和平县| 洛宁县| 舒城县| 历史| 梅州市| 铁岭县| 东港市| 三门县| 英山县| 盈江县| 阜阳市| 南部县| 凌云县| 九龙城区| 水富县| 乌兰察布市| 泊头市| 集贤县| 乌鲁木齐市| 皮山县| 长沙市| 凌源市| 民权县| 乐至县| 沧州市|