我記得和一羣開發人員一起開發一個項目,他們總是希望靜態的 html文本位於out標籤內(<c:out value="words" />
)。我不記得爲什麼 這種情況。使用jstl out標籤真的是最佳實踐嗎?
這是建立jsp頁面的最佳實踐嗎? 這種方法的優點/缺點是什麼?
我記得和一羣開發人員一起開發一個項目,他們總是希望靜態的 html文本位於out標籤內(<c:out value="words" />
)。我不記得爲什麼 這種情況。使用jstl out標籤真的是最佳實踐嗎?
這是建立jsp頁面的最佳實踐嗎? 這種方法的優點/缺點是什麼?
這對靜態文本來說是一個糟糕的主意。然後,對靜態和動態生成的東西沒有障礙。
除了這,在Servlet規範2.3 +你可以有靜態文本混合動態文本:
這是靜態的,不是${dynamic}
文本。
唯一的理由使用c:out
標籤,在我的經驗:
您所使用的舊版Servlet規範,並需要他們的輸出動態文本以某種方式
你想逸出HTML
輸出,以避免使用<>
等,與他們的控制代碼替換&符號等
ö無論如何,讓他們使用靜態文本混淆了程序員或維護者......現在我把它放在哪裏EL?它在c:out
標籤中......但其他50行靜態文本也是如此!
如果您只是打印純文本,最好在HTML中完成。 c:out
標籤的優點是您可以評估標籤內的表達式。
<c:out value="Hello ${user.firstName} ${user.lastName}"/>
當容器能夠直接提供EL支持時,Servlet Spec 2.3+中的優勢就消失了。因此,c:out不應該僅用於在Servlet Spec 2.3+容器中輸出EL,而Hello $ {user.firstName} $ {user.lastName}在沒有c:out的情況下可讀性更強。 – MetroidFan2002 2008-10-20 19:55:10
請注意,EL不會轉義特殊的HTML字符。如果EL正在輸出用戶提供的數據,則應用程序將面臨諸如跨站點腳本等令人討厭的安全漏洞。 – laz 2008-10-20 20:32:37