JSF 2.3.14:(重新)渲染带有常量的 JavaScript 代码块后出现语法错误
JSF 2.3.14: Syntax error after (re-) rendering a JavaScript code block with constants
当我推送 h:commandButton
时,以下代码片段会生成 javascript 语法错误:
<h:outputScript>
'use strict';
const label = '*';
</h:outputScript>
<h:form>
<h:commandButton>
<f:ajax render="@all" />
</h:commandButton>
</h:form>
SyntaxError: redeclaration of const label
问题是const label = '*'
。这种情况怎么处理?
Mojarra 2.3.14
您可以根据 facesContext.postback
使 h:outputScript
成为条件。如果您使用 rendered="#{not facesContext.postback}"
它只会在初始请求中呈现,而不是 Ajax 请求:
<h:outputScript rendered="#{not facesContext.postback}">
'use strict';
const label = '*';
</h:outputScript>
<h:form>
<h:commandButton>
<f:ajax render="@all" />
</h:commandButton>
</h:form>
另请参阅:
- How to know if I am in a postback?
当我推送 h:commandButton
时,以下代码片段会生成 javascript 语法错误:
<h:outputScript>
'use strict';
const label = '*';
</h:outputScript>
<h:form>
<h:commandButton>
<f:ajax render="@all" />
</h:commandButton>
</h:form>
SyntaxError: redeclaration of const label
问题是const label = '*'
。这种情况怎么处理?
Mojarra 2.3.14
您可以根据 facesContext.postback
使 h:outputScript
成为条件。如果您使用 rendered="#{not facesContext.postback}"
它只会在初始请求中呈现,而不是 Ajax 请求:
<h:outputScript rendered="#{not facesContext.postback}">
'use strict';
const label = '*';
</h:outputScript>
<h:form>
<h:commandButton>
<f:ajax render="@all" />
</h:commandButton>
</h:form>
另请参阅:
- How to know if I am in a postback?