我是一家软件公司的新程序员,假设我不能进行太多修改,包括重大更改,例如添加库。在当前的项目中,我们使用 JSP 和 Servlet,以及其他一些我不知道的高级 GUI(他们说它是 Eclipse 的衍生产品,称为 Enfinity)。Enfinity 还将库隐藏在不知名的位置,这与 Java 非常不同。所以我认为我也无法了解图书馆的位置,此外还添加了一些新图书馆。
您对在我的情况下如何转义 HTML 字符有任何建议/代码吗?非常感谢。
我是一家软件公司的新程序员,假设我不能进行太多修改,包括重大更改,例如添加库。在当前的项目中,我们使用 JSP 和 Servlet,以及其他一些我不知道的高级 GUI(他们说它是 Eclipse 的衍生产品,称为 Enfinity)。Enfinity 还将库隐藏在不知名的位置,这与 Java 非常不同。所以我认为我也无法了解图书馆的位置,此外还添加了一些新图书馆。
您对在我的情况下如何转义 HTML 字符有任何建议/代码吗?非常感谢。
您可以导入 org.apache.commons.lang.StringEscapeUtils 并添加其 jar 文件。默认情况下,jsp/servlet 中不存在这些内容。它将为您提供从 html、mysql、xml 等中转义字符的工具。您还可以创建自己的方法来检查字符序列,然后将其用作转义函数来转义您想要的数据。
如果您的目标平台确实是 Enfinity - 正如您在问题和标签中所述 - 您应该使用 Enfinity 构造,即使这不是您从 JSP 中完全了解的内容。请允许我重新打开这个旧线程并尝试帮助您。
Enfinity 有自己的“模板语言”,称为 ISML。最后,ISML 被预编译为 JSP。您可以找到任何 Enfinity 应用程序服务器安装的文档(名为 enfsuite_dev_programming 的 PDF)。如果没有,您应该询问您的项目经理或构建工程师。
另一方面,我从您的声明中了解到,您可能有 Enfinity Studio 可用(它是 Enfinity 的 IDE - Eclipse 的一个衍生版本。您应该能够通过 Enfinity Studios 帮助菜单访问开发人员指南。这个菜单可能有一些不幸的是,某些版本的 Studio 出现错误。但是,您可以通过“窗口”>“显示视图”>“其他”>“帮助”到达那里。帮助窗口底部是一个“内容”链接,可带您进入概览。开发人员指南位于目录链接 Enfinity Suite 应用程序编程指南。
但是您可以查看指南:在附录中您可以找到“参考 > ISML 标签/ISML 功能/ISML 模块”部分。浏览它你会发现它的功能:
<isprint value="#value#" encoding="on|off">
默认情况下,编码是“开启”的,这条语句将完全满足您的需求:它将编码#value# 中的所有 HTML 特殊字符。这里的特殊之处在于键值与所谓的管道字典中的对象匹配,这是一种存储来自 Enfinity 业务逻辑工作流层(所谓的管道)的对象的构造。
这个管道字典可以在 JSP 中使用:
Map<String, Object> pdict = getPipelineDictionary();
该字典是一个标准的 java Map,可以使用已知的操作进行操作。但是,首选方法是使用管道或至少使用相应的 ISML 标签
<isset name="name" value="#value#" scope="request|session">
使用 JSP/ISML 的完整示例是:
<%
String myString = "<b>Test</b>";
getPipelineDictionary().put("myDictKey", myString);
%>
<isprint value="#myDictKey#">