【发布时间】:2017-04-06 15:17:24
【问题描述】:
我在使用 myfaces 时遇到了一个让我发疯的奇怪问题。我尝试了 2.2.10 和 2.2.12 版本。我也使用 primefaces 6.0,但这可能不相关。
每当我在页面上包含 f:ajax 标记时,commandLink 不再起作用,并且我在 JavaScript 控制台中收到错误:
ReferenceError: myfaces is not defined
深入挖掘发现,当页面上有f:ajax标签时,不再生成以下行:
<script type="text/javascript" src="/console/javax.faces.resource/oamSubmit.js.jsf?ln=org.apache.myfaces"></script>
当我手动添加此脚本行时,一切都会再次运行!我通过在标签之后添加以下 javascript 来做到这一点:
<script>
if (!window.myfaces) {
document.write(unescape('%3Cscript type="text/javascript" src="/console/javax.faces.resource/oamSubmit.js.jsf?ln=org.apache.myfaces"%3E%3C/script%3E'));
}
</script>
虽然这个 hack 似乎一切正常,但不得不这样做让我感到不安。谁能解释一下这个问题的原因?
【问题讨论】:
标签: javascript ajax jsf myfaces