2013-06-05 55 views
1

<s:select><html:select>标签有什么区别?有两个不同的标签用于填充下拉菜单的目的是什么?支柱选择标签的区别

+0

什么是和标签 – PSR

+0

你可以发布简单代码 – PSR

+0

对不起,错字。我改正了 – Harshana

回答

1

没有difference.It依赖于prefix

如果使用此

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

然后用

<s:select> 

如果使用此

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

<html:select> 

然后用

+0

你现在明白了吗 – PSR

0

<html:select><html:something标记是Struts的1个 taglibraries的一部分,特别是标签-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 taglibraries, 个特别是支柱标签库:

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

<s:select ...> 

Example of usage of Struts2's <s:select>


编辑

由于@UmeshAwasthi让我注意到,它可能不是很明显,这是一个公约,而不是代码语法;

这意味着,如果一些疯狂的家伙,谁不喜欢的标准要反转前缀的taglibraries的他可以,以同样的方式,他可以写Integer myDouble = new Integer(); ...只有语义被打破,语法是好的。但是,由于我猜想源于你的问题的怀疑(与我几年前相同)是由于这两个语法在网络上出现了多次(<html:<s:),所以相信我,他们总是参考(至少在在线文章,可能不总是在一些问题这里或在coderanch等)。

概括起来讲,该公约(不是规则,只是规则)是:

html = Struts 1 
s = Struts 2 
c = JSTL 
+2

虽然我同意你的看法,但是这不是一个硬性规则,'html'前缀是'Struts1'的一部分,我们也可以在'Struts2'中使用它 –

+0

你是绝对正确的;但是这是**约定**,并且在Internet **上阅读示例**时,如果您看到'

0

那么它眷于在哪些方面你是在谈论和两个以上的答案是正确的以自己的方式。

有可以在这里

  1. 两个方面你是混合使用的Struts Struts2的旧版本。
  2. 这只是开发人员使用前缀的首选方式。

一般来说,所有谁与Struts的旧版本的工作是众所周知的关于使用html作为标记前缀,并有出色的安德烈Ligios解释。

一般来说,当我们使用Struts2标签时,我们使用s作为前缀,但这只是一个约定,您可以使用任何约定(前缀),如<s:select>, <html:select>, <myprefix:select>

所有你需要告诉框架哪些前缀,你宛在你的模板文件

<%@taglib prefix="prefix of you choice" uri="/struts-tags" %> 

虽然我敢肯定,你可能已经看到代码在拖地拥有一个代表具有以下行的帮助下使用旧的Strut和其他代表Struts2版本。

0

这两个标记具有相同的名称,但标记前缀定义了不同的名称空间。如果你想使用一些其他标签库,这些标签库的标签名称已经在使用,那么最好在不同的名称空间下定义这些标签库,这样标签名称不会冲突以实现不同的行为。为了确保标签名称不会更好地使用其他标签库,前缀为不同的名称空间。