Javascript 当页面上存在f:ajax时,不包括oamSubmit.js
我在使用myfaces时遇到了一个让我发疯的奇怪问题。我尝试了版本2.2.10和2.2.12。我也使用primefaces 6.0,但这可能不相关 每当我在页面上包含一个f:ajax标记时,commandLink就不再工作,我在JavaScript控制台中得到一个错误:Javascript 当页面上存在f:ajax时,不包括oamSubmit.js,javascript,ajax,jsf,myfaces,Javascript,Ajax,Jsf,Myfaces,我在使用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="/con
ReferenceError: myfaces is not defined
深入研究发现,当页面上有f:ajax标记时,不再生成以下行:
<script type="text/javascript" src="/console/javax.faces.resource/oamSubmit.js.jsf?ln=org.apache.myfaces"></script>
当我手动添加此脚本行时,一切都再次正常工作!我通过在标记后面添加folling 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>
如果(!window.myfaces){
write(unescape(“%3Cscript type=“text/javascript”src=“/console/javax.faces.resource/oamSubmit.js.jsf?ln=org.apache.myfaces”%3E%3C/script%3E');
}
尽管这项技术似乎一切都很好,但它让我感到不得不这么做的不安。有人能解释一下这个问题的原因吗?这里也有同样的问题。我偶然发现 并且发现这个问题只存在于javax.faces.PROJECT_STAGE=Production中 添加
<context-param>
<param-name>org.apache.myfaces.JSF_JS_MODE</param-name>
<param-value>minimal</param-value>
</context-param>
org.apache.myfaces.JSF_JS_模式
最小的
xml为我解决了这个问题