gpt4 book ai didi

jsf - 将 JSF 2.0 项目更新到 2.2 的手册

转载 作者:行者123 更新时间:2023-12-02 20:33:02 25 4
gpt4 key购买 nike

不幸的是,没有将 Eclipse (KEPLER) JSF 2.0 项目更新到 JSF 2.2 的工作教程。应该进行此更新还是应该创建一个新项目(并导入所有文件)?

正确且干净地更新所使用的 JSF 版本的步骤是什么?

当我将 faces.xml header 更改为:

时,我刚刚收到错误(从 FactoryNotFound 到 StartupServletContextListener 问题)
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">

我另外将库更新为 Majorra 2.2.0 (JSF 2.2),将动态 Web 项目更新为 3.0,将 java 更新为 1.7(在首选项中),但服务器仅打印错误并且无法工作...

最佳答案

来自 JSF 2.2。引用实现手册

Faces 2.2 is backwards compatible with Faces 2.1 and 2.0. This means that a web-application that was developed to run with Faces 2.1 or 2.0 won’t require any modification when run with Faces 2.2

Due to an error in previous versions of the specification, exceptions were silently being swallowed that now will bubble up to the exception handler. Code that was relying on this incorrect behavior may need to be modified to account for fixing this problem.

还有:

Any additional attributes on <composite:attribute/> are exposed as attributes accessible from the getValue() and attributeNames() methods on PropertyDescriptor. The return type from getValue() must be a ValueExpression with the exception of the getValue(“type”). The return type from getValue(“type”) must be Class. If the value specified for the type attribute of <cc:attribute/> cannot be converted to an actual Class, a TagAttributeException must be thrown, including the Tag and TagAttribute instances in the constructor.

结论:JSF2.1 之间的损坏很小。和2.2。

编辑:JSF2.2 中的一些新内容:

  1. 新命名空间: xmlns:f="http://xmlns.jcp.org/jsf/core"可以替换xmlns:f="http://java.sun.com/jsf/core"还有

    xmlns:h="http://xmlns.jcp.org/jsf/html"可以替换xmlns:h="http://java.sun.com/jsf/html"

  2. 根据您的评论:preRenderView JSF2.0 中以下构造的事件类型:

    <f:metadata>
    <f:event type="preRenderView" listener="#{viewActionManagedBean.validateUser()}"/>
    </f:metadata>

    可以替换为以下全新的<f:viewAction/> JSF2.2 中的标签:

    <f:metadata>
    <f:viewAction action="#{viewActionManagedBean.validateUser()}"/>
    </f:metadata>

    此标记还支持在请求生命周期的特定阶段执行托管 Bean 方法 phase属性。有效选项是

    • RESTORE_VIEW(恢复 View )
    • APPLY_REQUEST_VALUES(应用请求值)
    • PROCESS_VALIDATIONS(流程验证)
    • UPDATE_MODEL_VALUES(更新模型值)
    • INVOKE_APPLICATION(调用应用程序)
    • RENDER_RESPONSE(渲染响应)

    该标签还支持 if定义运行操作的 bool 条件的属性。以下面为例:

    <f:metadata>
    <f:viewAction action="#{viewActionManagedBean.validateUser()}" if="#{viewActionManagedBean.verifyCondition}" phase="APPLY_REQUEST_VALUES"/>
    </f:metadata>

    请注意,此标记仅在新命名空间 xmlns:f="http://xmlns.jcp.org/jsf/core" 中可用。

您可以获取下面的规范副本。查看/前言/2.1 之间的更改。和2.2。/向后兼容以前的版本

关于jsf - 将 JSF 2.0 项目更新到 2.2 的手册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19772995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com