<s:select>
和<html:select>
代码之间有什么区别?为了填充下拉列表,有两个不同的标签用于相同目的的目的是什么?
答案 0 :(得分:1)
没有区别。这取决于prefix
如果你使用这个
<%@ taglib prefix="s" uri="/struts-tags" %>
然后使用
<s:select>
如果你使用这个
<%@ taglib prefix="html" uri="/struts-tags" %>
<html:select>
然后使用
答案 1 :(得分:0)
<html:select>
和<html:something
代码是 Struts 1 标记库的一部分,特别是 tags-html 库:
<%@taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
<html:select ...>
Example of usage of Struts1's <html:select>
,<s:select>
和<s:something
标记是 Struts 2 标记库的一部分,
特别是 struts-tags 库:
<%@taglib prefix="s" uri="/struts-tags" %>
<s:select ...>
Example of usage of Struts2's <s:select>
修改强>
由于@UmeshAwasthi让我注意到,这可能并不明显,这是约定,而不是代码语法 ;
这意味着,如果一些不喜欢标准的疯子想要反转标签库的前缀,他可以,就像他可以写的一样Integer myDouble = new Integer();
...只有语义被破坏,语法还可以。
但是,因为我认为产生问题的疑问(与我多年前相同)是由于网络上出现了这两种语法(<html:
和<s:
)的多次出现相信我,他们总是提到合适的图书馆(至少在在线文章中,可能并不总是在问题这里或 coderanch 等) )。
总结一下,“公约”(不是规则,只是规则)是:
html = Struts 1
s = Struts 2
c = JSTL
答案 2 :(得分:0)
它依赖于你在谈论什么方面而且上面的答案都是正确的。
这里可以有两个方面
一般来说,使用Struts旧版本的所有人都知道使用html
作为标记前缀, Andrea Ligios 非常好地解释了这一点。
一般来说,当我们使用Struts2标签时,我们使用s作为前缀,但这只是一个约定,您可以使用任何约定(前缀),如<s:select>, <html:select>, <myprefix:select>
。
所有你需要告诉框架什么前缀,你想在你的模板文件中使用以下行的帮助
<%@taglib prefix="prefix of you choice" uri="/struts-tags" %>
虽然我确信你可能已经看过两个代表旧Strut的代码,而其他代表Struts2版本。
答案 3 :(得分:0)
两个标记具有相同的名称,但标记前缀定义的名称空间不同。如果您想使用其他标签库,其中包含已使用名称的标签,那么最好在不同的名称空间下定义这些标签库,因此标签名称不会发生冲突以实现不同的行为。要确保标记名称没有更好地冲突,以使用前缀为不同名称空间的其他标记库。