簡體   English   中英

支柱選擇標簽的區別

[英]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 ...>

Struts1的<html:select>的用法示例


,而<s:select><s:something標記是Struts 2 標記庫的一部分,特別是struts-tags庫:

<%@taglib prefix="s" uri="/struts-tags" %>

<s:select ...>

Struts2的<s:select>的用法示例


編輯

正如@UmeshAwasthi使我注意到的那樣, 這可能不是一個慣例 ,而不是一個代碼語法

這意味着,如果某個不喜歡標准的瘋狂家伙想要反轉標簽庫的前綴 HE CAN ,他可以用相同的方式編寫Integer myDouble = new Integer(); ...只有語義被破壞,語法還可以。

但是,由於我猜想引起您疑問的疑惑(與我幾年前一樣)是由於這兩種語法( <html:<s: :)在網絡上多次出現,所以,相信我,他們總是引用到適當的庫(至少在在線文章中 ,也許在這里或在Coderanch問題上並不總是有問題 )。

概括起來,公約(不是Rule ,只是rule )是:

html = Struts 1
s    = Struts 2
c    = JSTL

好吧,這取決於您在談論什么方面,以上兩種答案都以自己的方式是正確的。

這里可以有兩個方面

  1. 您正在將Struts舊版本與Struts2混合在一起。
  2. 這只是開發人員使用前綴的首選方式。

通常,所有使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM