Jsf javax.faces.PROJECT_STAGE的使用

Jsf javax.faces.PROJECT_STAGE的使用,jsf,model-view-controller,jsf-2,web,jsf-1.2,Jsf,Model View Controller,Jsf 2,Web,Jsf 1.2,我想了解“javax.faces.PROJECT_STAGE”属性对JSF应用程序的影响。下面的链接展示了一个很好的用例 除了显示验证错误消息外,这个属性是否还有其他用途?我知道我们可以通过检查这个变量来识别环境和更改某些功能,但是JSF是否还可以自动为开发人员提供帮助?如果您能分享您的项目经验,那就太好了。根据wutzebaer对javax.faces.project_STAGE属性的注释可以控制是否启用了某些功能(如资源缓存)。将此参数设置为Development可以启用更好的错误消息,

我想了解“javax.faces.PROJECT_STAGE”属性对JSF应用程序的影响。下面的链接展示了一个很好的用例



除了显示验证错误消息外,这个属性是否还有其他用途?我知道我们可以通过检查这个变量来识别环境和更改某些功能,但是JSF是否还可以自动为开发人员提供帮助?如果您能分享您的项目经验,那就太好了。

根据wutzebaer对
javax.faces.project_STAGE
属性的
注释
可以控制是否启用了某些功能(如资源缓存)。

将此参数设置为
Development
可以启用更好的错误消息,包括在客户端JavaScript中,以牺牲一些性能为代价

将此参数设置为
生产时
将关闭一些错误消息,并且

来源:

当我们将项目阶段设置为生产阶段时,我们将得到更好的错误消息,例如,当我们在输入字段周围缺少h:form标记时,当阶段设置为开发阶段时,我们可能会得到以下错误消息,当阶段设置为生产阶段(或开发以外的任何值)时,我们不会得到任何错误消息

表单组件需要在其祖先中具有UIForm。建议: 在


将项目阶段设置为开发阶段的另一个功能是,我们还可以在不重新启动服务器的情况下查看.xhtml文件中的更改。

在开发过程中对资源进行缓存破坏 关于资源,我指的是静态资源,如样式表、javascript库、徽标和象形图等

默认情况下,加载资源时没有任何缓存过期(在最长期限或其他时间过期)。之所以如此,是因为资源被假定为静态的,因为它们在Servlet容器的生命周期内不会改变。我们从客户端缓存这些资源(Web浏览器缓存)中获益匪浅

但是,当发布可能包装一组资源的库的新版本时,我们不希望用户被旧版本的资源所束缚。通常情况下,根据规范,资源将自动以库名称和版本作为查询属性的后缀。典型资源将自动输出为以下内容:

<link type="text/css" rel="stylesheet" href="/nqp-web/javax.faces.resource/components.css.xhtml?ln=primefaces&amp;v=6.2">
登录中 正如@vrcca已经提到的,
isProjectStage
的用法表明,当设置为
DEVELOPMENT
时,这通常只是打开额外的日志记录


工具书类
  • Mojarra实施:

  • 没有。基本上就是这样:控制错误的记录方式并允许最终开发人员做出决策Hanks,我还有一个问题:如果project stage设置为Development,JSF2.0会自动添加到视图中。我认为这会自动重新加载facelets。在开发过程中非常方便!在开发过程中.xhtml文件的实时更改由就地部署处理。缓存无论如何都不会发生,因为.xhtml在默认情况下是动态的,并且将被设置为立即过期。有趣的是,我认为开发总是更加冗长。我想在开发过程中,屏幕上的消息可能会很少,但是日志记录(java.util.Logging)会更广泛。