如何在页面上仅包含一次标签
我已经实现了一些组件。我使用jsp自定义标签。但我已经实现了 2 个标签,这使得其他程序员将来很难使用它。如何改进我的代码以仅使用一个标签。我的标签是 .tag 文件。
下面是我需要的:
<c:foreach...
<u:myTag1/>
<u:myTag2/>
我想显示可重复的 myTag1 并且仅显示一次 myTag2
拥有这样的东西会很好(没有 myTag2):
<c:foreach....
<u:myTag1>
I have implemented some component. I used jsp custom tags. But I've implemented 2 tags which make hard to use this in the future by others programmers. How can I improve my code to use only one tag. My tags are .tag files.
Below is what I need:
<c:foreach...
<u:myTag1/>
<u:myTag2/>
I want to display repeatable myTag1 and only once myTag2
It would be nice to have such things (without myTag2):
<c:foreach....
<u:myTag1>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您只想使用一个标签,那么您需要在 TLD 中创建一个新标签并实施另一个标签。希望您能够重构 Tag1 和 Tag2,将通用功能放在某个地方,例如 Helper 类或抽象类,这样 Tag1、Tag2 和 Tag1AndTag2 之间的重复就会最少。
或者,您可能想查看 JSP 片段或其他一些模板系统,因此页面可以包含常见的 JSP。但是,标签解决方案听起来更好 - 如果您确定提供第三种标签(组合其中两个)是要走的路。您可能决定只保留标签 1 和标签 2。
我假设您在这里只使用标准 JSP 标记。如果您使用 JSF 2,您可以查看复合组件或其他东西,这可能会减轻一些痛苦。
If you want to use only one tag then you're in the realms of creating a new tag in the TLD and implementing another Tag. Hopefully you should be able to refactor Tag1 and Tag2 to put common functionality somewhere e.g. Helper class or abstract class, so the duplication between Tag1, Tag2 and Tag1AndTag2 is minimal.
Alternatively you may want to look at JSP fragments or some other templating system, so pages can include the common JSP in. However, the tag solution sounds better - if you're sure that offering a third flavour of tag (combing two of them) is the way to go. You may make the decision to stay with just Tag1 and Tag2.
I'm assuming you're using just standard JSP tags here. If you were using JSF 2 you could look at composite components or something, which may save some pain.