今天遇到一個(gè)問題,到現(xiàn)在也沒能比較圓滿的解決,是不是Struts在標(biāo)簽庫上還不夠完善呢。比如有一個(gè)界面是顯示課件列表的,在最后一欄里可以對(duì)數(shù)據(jù)進(jìn)行操作,如下所示:
現(xiàn)在希望當(dāng)用戶按刪除時(shí)先彈出個(gè)確認(rèn)框,提示“是否確認(rèn)刪除風(fēng)洞模型課件”,用戶可以選擇確認(rèn)或取消。其中“是否確認(rèn)刪除”是在資源文件里定義的(prompt.confirm.delete=是否確認(rèn)刪除{0}),“風(fēng)洞模型課件”是課件的名稱,課件bean名為"ware"。如果寫成HTML,就是:
但因?yàn)樾畔⒍际莿?dòng)態(tài)的,所以就有問題了。因?yàn)樵?lt;html:link>的onclick="..."里,"<%"必須緊跟在第一個(gè)單引號(hào)后才能正確解析,即不能寫為onclick="return confirm('<%=str%>')"。所以,現(xiàn)在有兩種方法實(shí)現(xiàn)所需要的功能:
1、不用<html:link>,直接用HTML的<a>標(biāo)記:
2、使用<html:link>,事先定義一個(gè)只含一個(gè)參數(shù)的script函數(shù),代碼如下:
然后在刪除鏈接的地方這樣寫:
這兩種方法都能達(dá)到目的,我暫時(shí)使用了第2種用法,畢竟在struts程序的jsp里直接使用<a>標(biāo)記有點(diǎn)別扭。我看了一下struts文檔,能把資源中的{0}轉(zhuǎn)換為實(shí)際內(nèi)容的標(biāo)簽好象只有<bean:message>這一個(gè),其實(shí)如果有辦法讓<bean:message>得到的內(nèi)容放進(jìn)某個(gè)bean里就很好辦了,可惜……。
另外,沒研究過EL標(biāo)簽庫,不知道會(huì)不會(huì)有幫助。