如何使用 JSF 复合组件使 id 在页面上唯一?
我正在为 Javascript 图表库制作一个名为 flot 的组件。
<cc:interface>
<cc:attribute name="data" required="true" />
</cc:interface>
<cc:implementation>
<div id="placeholder" style="width:600px;height:300px;"></div>
<script type="text/javascript">
//<![CDATA[
$(function () {
var d1 = [#{cc.attrs.data}];
$.plot($("#placeholder"), [ d1 ]);
});
//]]>
</script>
</cc:implementation>
这是迄今为止我拥有的少量代码。我遇到的问题是如何使该 div 标签在页面上随机生成,以便我可以输出多个图表。显然在目前的情况下它不会这样做。我需要将值传递到 javascript 函数中。
我知道我可以创建另一个需要 id 的属性,并且用户必须指定 id,但我注意到很多组件不需要 id。在像 primefaces 和icefaces 这样的重型 ajax/javascript 库中,id 似乎是随机的。
I am making a component for the Javascript charting library called flot.
<cc:interface>
<cc:attribute name="data" required="true" />
</cc:interface>
<cc:implementation>
<div id="placeholder" style="width:600px;height:300px;"></div>
<script type="text/javascript">
//<![CDATA[
$(function () {
var d1 = [#{cc.attrs.data}];
$.plot($("#placeholder"), [ d1 ]);
});
//]]>
</script>
</cc:implementation>
This is the small amount of code I have so far. The problem I have is how would I make that div tag randomly generate on a page so that I can output multiple charts. Obviously it won't do that in the current state. I would need to pass the value into the javascript function to.
I know I can just create another attribute with id required and the user would have to specify the id, but I've noticed on a lot of components that the id is not required. It seems in heavy ajax/javascript libraries like primefaces and icefaces that the ids are random some how.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以通过
#{cc.id}
获取复合组件自己的ID。因此,为了确保唯一性,只需执行以下操作:。
如果您未在组件上指定任何
id
属性,JSF 将自动生成一个 例如,这里
foo
将在复合组件实现中用作#{cc.id}
。You can get the composite component's own ID by
#{cc.id}
. So to ensure uniqueness, just do:and
JSF will autogenerate one if you don't specify any
id
attribute on the component. E.g.Here
foo
will be used as#{cc.id}
in the composite component implementation.