无法理解头第一个servlet中的示例(标记文件中的动态属性)

时间:2013-07-26 14:01:48

标签: jsp jsp-tags

<%@ tag body-content='empty' dynamic-attributes='tagAttrs' 
%> 
<%@ attribute name='optionsList' type='java.util.List' 
required='true' rtexprvalue='true' %> 
<%@ attribute name='name' required='true' %> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<select name='${name}' 
<c:forEach var="attrEntry" items="${tagAttrs}"> 
${attrEntry.key}='${attrEntry.value}' 
</c:forEach> 
> 

<c:forEach var="option" items="${optionsList}"> 
<option value='${option}'> ${option} </option> 
</c:forEach> 
</select> `  

所以在这个例子中我们得到了tagAttrs var。 它是一个haspmap但是谁设置了这个值。以及它如何验证attritbutes的正确值。

并且当我在eclipse中粘贴此代码时,我收到了错误  

错误是:isValid()== false what is this, i have never this type of error.

1 个答案:

答案 0 :(得分:0)

动态属性的想法是能够传递一组属性,甚至不需要事先知道它们的名字。在这种情况下,代码属性可以是styleclassid以及HTML选择框可以拥有的所有其他标准或非标准属性。例如:

<tags:select name="preferredSport"   <%-- required name attribute --%>
             optionsList="${sports}" <%-- required optionsList attribute --%>
             id="preferred-sport"    <%-- dynamic attribute --%>
             class="inline"          <%-- dynamic attribute --%>
             style="color: red;" />  <%-- dynamic attribute --%>