我目前正在尝试将基本的 JSF (2.0) 支持添加到 Backbase Portal 5.2.1.2 以在我的自定义小部件中使用。
当我以静态方式访问我的小部件时(例如“.../portal/static/portal_name/widgets/widget_name/index.xhtml”),它似乎正在工作,但是当我在门户的上下文中查看我的小部件时( .../portal/portals/portal_name/pages/index) 我的 JSF 标记显示在 HTML 源代码中,而不是解析后的输出。EL 变量(如#{msg.title})也会发生同样的情况。
如果我在“普通”webapp 项目中使用相同的 JSF 设置,它也可以正常工作,所以在我看来,一定是 Backbase 特定的东西导致了这个问题。
我想知道是什么导致了这种情况发生,是否可以解决或规避,或者是否有人成功地在这个特定版本的 Backbase 中实现了 JSF。我知道在 Backbase 5.1 中实现 JSF 是可行的,但对我来说,恢复到该版本不是一个选项。
编辑 - 按请求添加了小部件的 index.xhtml(我的实际 index.xhtml 稍大,但这也失败了):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xml:lang="en">
<h:head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>Help ribbon widget</title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</h:head>
<h:body>
<span class="left title">#{msg.help_title}</span>
<h:outputText value="TEST"/>
</h:body>
</html>
此外,如果有任何帮助,我正在为我的容器模板使用 Border_Layout。
当我转到 Google Chrome 检查器的网络选项卡并查看对小部件 index.xhtml 文件的请求时,我可以看到正确的输出,但由于某种原因,这与组合 html 中显示的内容不同。