【发布时间】:2013-06-06 17:23:19
【问题描述】:
今天我收到异常“mojarra 未定义”。
这些解决方案都不是我的问题。
经过一些调试后,我通过将 web.xml 中的 javax.faces.PROJECT_STAGE 参数更改为:
<param-value>Production</param-value>
到:
<param-value>Development</param-value>
它解决了这个问题,但是将我的项目投入生产时应该怎么做?我应该将参数留在开发上吗?
【问题讨论】:
-
我从未见过这个问题。请确定根本原因。变量名为
mojarra的 JavaScript 对象在jsf.js文件中定义,如果您有<h:head>,则该文件应该是自动包含的。查看生成的 HTML 输出。jsf.js文件是否存在于头部?查看浏览器的内置 HTTP 流量监视器。它是否向浏览器返回了正确的响应或 404 左右?与项目阶段的唯一区别是开发阶段将查询字符串附加到 URL,这会导致返回非缩小版本。 -
很有可能您同时测试了 MyFaces 和 Mojarra,并且浏览器正在积极缓存
jsf.js文件的 MyFaces 版本。但是一个相当简单的清除浏览器缓存和/或硬刷新应该可以解决它。 -
我的组件在开发模式下调用
mojarra.ab(this,event,'valueChange',0,'menu-form:pagina-select')jsf.js是mojarra,但在生产模式下它似乎是我的脸的缩小版,jsf.js开头的小摘录在生产模式下:if(!window.myfaces){var myfaces=new function(){};window.myfaces=myfaces;},即使我的组件仍然调用mojarra.ab(...)。我会仔细检查我的服务器配置。 -
清除浏览器缓存。如果使用代理,请联系其管理员以清除其缓存。
标签: jsf