[英]Difference of struts select tags
<s:select>
和<html:select>
標簽之間有什么區別? 為了填充下拉列表而具有兩個不同標簽的目的是什么?
沒什么區別,取決於prefix
如果你用這個
<%@ taglib prefix="s" uri="/struts-tags" %>
然后使用
<s:select>
如果你用這個
<%@ taglib prefix="html" uri="/struts-tags" %>
<html:select>
然后使用
<html:select>
和<html:something
標記是Struts 1 標記庫的一部分,特別是tags-html庫:
<%@taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
<html:select ...>
,而<s:select>
和<s:something
標記是Struts 2 標記庫的一部分,特別是struts-tags庫:
<%@taglib prefix="s" uri="/struts-tags" %>
<s:select ...>
編輯
正如@UmeshAwasthi使我注意到的那樣, 這可能不是一個慣例 ,而不是一個代碼語法 ;
這意味着,如果某個不喜歡標准的瘋狂家伙想要反轉標簽庫的前綴 HE CAN ,他可以用相同的方式編寫Integer myDouble = new Integer();
...只有語義被破壞,語法還可以。
但是,由於我猜想引起您疑問的疑惑(與我幾年前一樣)是由於這兩種語法( <html:
和<s:
:)在網絡上多次出現,所以,相信我,他們總是引用到適當的庫(至少在在線文章中 ,也許在這里或在Coderanch等問題上並不總是有問題 )。
概括起來,公約(不是Rule ,只是rule )是:
html = Struts 1
s = Struts 2
c = JSTL
好吧,這取決於您在談論什么方面,以上兩種答案都以自己的方式是正確的。
這里可以有兩個方面
通常,所有使用Struts舊版本的人都知道使用html
作為標記前綴, Andrea Ligios對此進行了很好的解釋。
通常,當我們使用Struts2標記時,我們使用s作為前綴,但這僅是一個約定,您可以使用任何約定(前綴),例如<s:select>, <html:select>, <myprefix:select>
。
您只需要告訴框架什么前綴,就可以在模板文件中的以下行的幫助下使用
<%@taglib prefix="prefix of you choice" uri="/struts-tags" %>
盡管我確信您可能已經在兩個地方看到過代碼,其中一個代表舊的Strut,另一個代表Struts2版本。
這兩個標簽具有相同的名稱,但標簽前綴定義的名稱空間不同。 如果要使用其他具有已使用名稱的標簽的標簽庫,則最好在不同的名稱空間下定義這些標簽庫,這樣標簽名稱就不會沖突以實現不同的行為。 為了確保標簽名稱不會發生沖突,可以使用其他以不同名稱空間為前綴的標簽庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.