问题标签 [custom-tags]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP - 使用自定义标签进行模板化 - 这是对 eval 的合法使用吗?
概述
大约在 2009 年底,我为 PHP/HTML 编写了一个简单的模板系统,供我们的设计师在内部用于宣传册类网站。该系统的目标是允许通过 PHP 处理的自定义标签在纯 HTML 中进行模板化。例如,模板页面可能如下所示:
模板本身可能看起来像这样:
除了 Page 和 Content/Container 标签之外,核心中还包含一些其他标签,用于流控制、迭代集合、输出动态值等。该框架的设计使得添加您自己的一组非常容易在另一个前缀和命名空间下注册的标签。
自定义标签到 PHP
我们如何解析这些自定义标签?由于不能保证 HTML 文件是格式良好的 XML,因此 XSLT/XPATH 之类的解决方案将不可靠。相反,我们使用正则表达式来查找带有注册前缀的标签,并将其替换为 PHP 代码。PHP 代码是基于堆栈的设计……在遇到开始标签时,会创建一个表示该标签的对象并将其推送到堆栈上,并运行其“初始化函数”(如果有)。每当遇到已注册的结束标记时,最新的对象就会从堆栈中弹出,并运行其“渲染功能”。
所以,在框架用 PHP 替换模板标签之后,我们的示例页面可能看起来像这样(实际上它有点丑陋):
好的、坏的和eval
现在,如何执行我们新生成的 PHP 代码?我可以在这里想到几个选项。最简单的就是简单eval
的字符串,而且效果很好。然而,任何程序员都会告诉你“eval 是邪恶的,不要使用它......”所以问题是,还有什么比eval
我们可以在这里使用的更合适的吗?
我考虑过使用临时文件或缓存文件,使用php://
输出流等,但据我所知,这些并没有比eval
. 缓存可以加快速度,但实际上我们在这个东西上拥有的所有网站都已经非常快了,所以我认为此时没有必要进行速度优化。
问题
对于此列表中的每一件事:这是一个好主意吗?你能想出更好的选择吗?
- 总体思路(html / php 的自定义标签)
- 将标签转换为php代码而不是直接处理
- 基于堆栈的方法
- 使用
eval
(或类似的)
感谢您的阅读和 TIA 的任何建议。:)
ajax - 是否有像逐字一样的标签,除了你可以将它设置为脏?
我想要的是如下内容:
我希望 ajax 重新运行 out.println 代码。但是,当我将该表单设置为脏时,out.println 不会重新运行。
除了使用自定义标签之外,有没有办法解决这个问题?
我需要的是一个标签,比如
在 myfaces 或基本 JSF 中是否已经有类似的标签?
wordpress - order post taxonomies alphabeticaly in wordpress?
I'm using a custom taxonomy for my posts which I print like this:
This works fine but it prints the terms in the order they were added, is there a way to make it print alphabeticaly? the_terms function doesn't let me pass any order parameter so I guess I have to use a different one but I haven't found any yet.
Thanks in advance.
java - 带有 JSF 主体的 JSP 自定义标记
我想为网站创建自己的模板机制。我制作了 2 个名为“TemplateInsert”和“TemplateFor”的自定义标签,一个会像这样使用它们:
除非您的“内容”中有 JSF 标记,否则此方法非常有效。服务器似乎没有解析它们。有谁知道我该如何解决这个问题?
干杯!
java - 包含带有自定义标签的 jspf 文件
如何通过自定义标签将 jspf 文件添加到 jsp 页面?
在标签支持类中,我可以使用...添加jspf代码。
但是我该怎么做才能添加文件?
javascript - jquery奇怪地解析自定义标签
我遇到以下问题:http: //jsfiddle.net/x55LD/1/
我正在尝试使用 jQuery 1.6 解析自定义标签。它工作正常,除非标签位于<select>
标签内。例如:
<blah>
尽管存在两个标签,但这只会记录一条消息。中的第二个<blah>
标签<select>
将无法识别。有谁知道为什么会发生这种情况?
struts2 - 为简单标签和 Struts 2.x 引用属性
我正在编写一个简单的标签,其中包含 4 个属性,如下所示:
在 Struts 2 标记中有一点我需要引用这些属性之一,如下所示:
所以你看我正在根据传入的菜单名称在 OGNL 表达式中进行查找。从我看到的所有示例中,EL 是引用属性 menuName 的常用方法,但在 Struts 2.x 中,EL 被禁用出于安全原因。
有没有办法引用我需要引用的属性。我真的不想考虑任何涉及我使用以前版本的 jstl 或 struts 的解决方案。
java - 定义自己的 JSP 标记体
最近我决定了解一些关于编写自定义标签的知识。还有一个问题。
在我的 Web 应用程序中,我使用了一些 JSTL 标记,并且在每个 JSP 页面中,我都有一段相同的代码:
如您所见,此构造设置了正确的资源包。
所以我想知道是否有可能包装这段代码并使用单个标签代替它(我知道还有另一种方法 - 只需将此代码放在单个 JSP 页面中并使用 <%@ include % > 指令,但我想尝试一个标签)?
据我了解,我应该以某种方式设置正文内容(在标记类内部,而不是来自 JSP)并制作容器来执行它,但我找不到任何关于它的示例。
我现在得到的:
顶级域名:
和我的标签:
它编译,但没有正确执行。
java - JSP TableTag 排序
我正在开发一个使用 JSP 的遗留系统。具体来说,有一个<display:table>
标签允许用户对数据列进行排序。但是,当使用默认标记时,它仅按字母顺序、整数或双精度排序。我正在寻找一种将自定义逻辑注入调用堆栈的方法,以便我可以使用 的dataType
属性对<display:column>
诸如“$ 5,000,000.00”之类的值进行排序,而不会在其前面列出“$ 5,100”。
我有一个经过全面测试的比较器,可以由排序机制使用。
我对任何想法持开放态度。这些是我想出的:
- 我发现了一些其他的实现需要一个
comparator
. 我计划先对此进行测试,看看它是否适用于我目前所拥有的。然而,这种类型的变化是一个具有测试意义的大型系统变化。 - 重新实现
TableTag
和ColumnTag
. 但是,我找不到实际来源来了解这些通常的作用。“开源”称号就这么多。
java - JSP自定义标签属性类型整数
我想创建一个自定义标签库,但在处理程序类中我想拥有整数属性。
在 tld 文件中,我有以下代码:
还有其他整数属性,但此示例与其他属性相关。
处理程序类,目前看起来是这样的:
我没有在tld文件中指定属性类型,默认应该是String。虽然我收到这样的错误:
我还尝试将属性类型修改为:<type>java.lang.Integer</type>
并将 setter 方法修改为:
我得到同样的错误。
我应该如何定义 tld 文件中的属性和处理程序类中的设置器,以便我不会收到设置器错误?