`
iamlibo
  • 浏览: 69337 次
社区版块
存档分类
最新评论

facelets1.2 与 trinidad1.2.1

阅读更多

Trinidad发布了1.2.1版本,针对JSF1.2实现的组件,下载了Example,将jsf-impl.jar和jsf-api.jar(是SUN对JSF1.2的实现)及其依赖包复制到WEB-INF/lib目录下即可运行了.

参照这个Example就可以创建自己的JSF应用了.

下面主要介绍一下trinidad 与facelets一起使用时我遇到的问题及解决方法:

主要是配置web.xml和faces-config.xml 可以参照https://facelets.dev.java.net/nonav/docs/dev/docbook.html#gettingstarted-setup-web这个文档来配置facelets,后面附有完整的配置好的代码。

需要注意的问题就是:

配置好的facelets后在faces-config.xml中有这样一段代码:

<application>
    <view-handler>
      com.sun.facelets.FaceletViewHandler
    </view-handler>    
</application> 
在加入trinidad后这部分变为
  <application>
<default-render-kit-id>org.apache.myfaces.trinidad.core</default-render-kit-id>

<locale-config>
<default-locale>cn</default-locale>
<supported-locale>en</supported-locale>
</locale-config>
</application>
一定要将
    <view-handler>
      com.sun.facelets.FaceletViewHandler
    </view-handler>    
这段删除才可以显示出页面。要不然会提示一个错误:
java.lang.IllegalStateException: No RenderingContext
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeBegin(CoreRenderer.java:156)
        at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeBegin(UIXComponentBase.java:704)
        at org.apache.myfaces.trinidad.component.UIXComponentBase.__encodeRecursive(UIXComponentBase.java:1267)
        at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeAll(UIXComponentBase.java:757)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:890)
        at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:571)
        at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:178)
        at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:171)
        at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:248)


web.xml(已经配置好了JSF1.2(sun实现)\facelets\spring)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>XiangYun</display-name>
<!-- ==========facelets =========== -->
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<context-param>
<param-name>facelets.REFRESH_PERIOD</param-name>
<param-value>2</param-value>
</context-param>
<context-param>
<param-name>facelets.DEVELOPMENT</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.validateXml</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.verifyObjects</param-name>
<param-value>true</param-value>
</context-param>
<!-- =============trinidad ============ -->
<context-param>
<param-name>org.apache.myfaces.trinidad.ALTERNATE_VIEW_HANDLER</param-name>
<param-value>com.sun.facelets.FaceletViewHandler</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.trinidad.CLIENT_STATE_METHOD</param-name>
<param-value>all</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.trinidad.USE_APPLICATION_VIEW_CACHE</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.trinidad.CHANGE_PERSISTENCE</param-name>
<param-value>session</param-value>
</context-param>
<!--spring config file-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml /WEB-INF/beans.xml</param-value>
</context-param>
<!-- trinidad filter-->
<filter>
<filter-name>trinidad</filter-name>
<filter-class>org.apache.myfaces.trinidad.webapp.TrinidadFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>trinidad</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<!-- faces servlet-->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- trinidad resource loader servlet -->
<servlet>
<servlet-name>resources</servlet-name>
<servlet-class>org.apache.myfaces.trinidad.webapp.ResourceServlet</servlet-class>
</servlet>

<!-- spring servlet -->
<servlet>
<servlet-name>SpringContextServlet</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>resources</servlet-name>
<url-pattern>/adf/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>resources</servlet-name>
<url-pattern>*.source</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
</web-app>
 
face-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude"
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_1_2.xsd">
<navigation-rule>
<from-view-id>/welcome.xhtml</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/pages/main.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>welcome</from-outcome>
<to-view-id>/welcome.xhtml</to-view-id>
</navigation-case>
</navigation-rule>

<application>
<default-render-kit-id>org.apache.myfaces.trinidad.core</default-render-kit-id>
<!-- spring config -->
<variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>
<locale-config>
<default-locale>cn</default-locale>
<supported-locale>en</supported-locale>
</locale-config>
</application>
</faces-config>
 

<!----> Technorati : facelets, trinidad

分享到:
评论

相关推荐

    jsf 1.2 myfaces1.2.7 richfaces3.3.1 facelets1.2 所有的最新包

    这个版本修复了许多已知的bug,提高了性能,并且提供了与JSF 1.2规范的兼容性。MyFaces强调了灵活性和模块化,使得开发者可以根据需求选择和配置不同的组件。 **RichFaces 3.3.1** 是一个基于JSF的扩展库,专注于...

    facelets模板

    有了 Facelets,您不需要像以前在 JSF 1.2 中那样配置视图处理器。Facelets 是一种以 JSF 为中心的视图技术。 Facelets 以组合为基础。一个组合定义一个 Facelets 页中的 JSF UIComponent 结构。Facelets 应用程序...

    Facelets

    1. **下载与依赖**:首先,你需要下载 Facelets 的库文件,并确保你的项目中已经包含了必要的依赖,例如 JSF 的实现(如 Sun's JavaServer Faces Reference Implementation 或 Apache MyFaces)。 2. **目录结构与...

    jsf1.2官方例子

    4. **Facelets**: JSF 1.2引入Facelets作为默认的视图表示技术,取代了原来的JSP。Facelets提供了更简洁、更易于维护的视图定义方式,支持模板和组件组合。 5. **EL表达式**: Expression Language (EL) 是JSF中用于...

    facelets源码包

    - Facelets可以与CDI(Contexts and Dependency Injection)、EJB、Spring等框架无缝集成,构建复杂的企业级应用。 总之,Facelets源码包为开发者提供了探索和学习Facelets的宝贵资源。通过研究源码和文档,开发者...

    facelets中文教程(初级+高级)

    - Facelets与JSF的Ajax功能紧密结合,如`&lt;f:ajax&gt;`标签,可以实现页面局部刷新,提供更丰富的用户体验。 7. **国际化与本地化** - Facelets支持i18n,可以通过`&lt;f:loadBundle&gt;`标签加载资源包,根据用户浏览器...

    facelets 教程

    在探索 Facelets 的世界之前,我们首先应该明确 Facelets 在 JavaServer Faces (JSF) 生态系统中的地位与作用。Facelets,作为 JSF 的官方视图技术,它在 JSF 2.0 中被引入,并迅速成为构建动态 Web 应用程序的首选...

    JSF与Facelets应用程序

    综上所述,JSF与Facelets的结合提供了强大的Web应用开发工具集,它简化了视图的创建和维护,同时保持了与后端业务逻辑的紧密集成。通过使用这个框架,开发者可以专注于业务逻辑的实现,而不需要过多关注底层的HTTP...

    facelets_demo

    在这个"facelets_demo"项目中,我们可以深入学习Facelets如何与MyEclipse集成,以及如何在实际开发环境中应用。 1. **Facelets 技术介绍** - Facelets 是JSF 2.0及其后续版本的标准视图层技术,替代了早期的JSP...

    jsf+facelets+ajax4jsf的全部jar包

    2. **Facelets**:Facelets是JSF 1.2引入的视图技术,替代了JSP作为默认视图表示。Facelets使用XML语法,允许开发者更直观地创建和组织UI组件。它支持模板、导入、组合和重用组件,使得视图更加清晰和易于维护。...

    jsf1.2_04api

    总的来说,JSF 1.2 API为Java Web开发提供了强大的工具集,通过组件化、事件驱动的方式简化了界面构建,同时也提供了与EJB、JPA等其他Java EE技术的集成能力。然而,随着技术的发展,JSF后续版本(如2.x及更高)引入...

    jsf1.2 download javaserver faces

    - **国际化与本地化**:JSF 1.2支持多语言环境,允许开发人员轻松地为不同地区提供支持。 3. **下载JSF 1.2** 要下载JSF 1.2,你可以访问Oracle的官方站点或Apache MyFaces项目,这两个都是JSF实现的提供商。选择...

    JSF1.2所需要的jar包

    7. **最佳实践**:在使用JSF 1.2时,应遵循最佳实践,如使用Facelets而非JSP作为视图技术,确保良好的组件重用,以及充分测试和优化性能。 总之,JSF 1.2通过`JSF.jar`提供了强大的服务器端UI框架,帮助开发者高效...

    netbeans_Facelets_Seam_Ejb3编程入门

    NetBeans IDE配置与Facelets、Seam和EJB3技术简介 NetBeans是一款功能强大的开源集成开发环境(IDE),特别适用于Java开发人员。在《NetBeans Facelets Seam Ejb3编程入门》文档中,作者Jens Frey介绍了如何在...

    jsf 1.2 jar 应用包

    7. **与Servlet容器的集成**:JSF 1.2是基于Servlet的,因此它可以无缝集成到任何支持Servlet 2.4及更高版本的容器中,如Tomcat、Jetty等。JSF通过Filter(JSF Servlet)处理HTTP请求,并自动管理页面的生命周期。 ...

    JSF1.2.07版源代码

    在源代码中,可以研究Facelets如何解析这些XML文件,生成组件树,并将它们与请求处理流程关联起来。这有助于理解自定义组件的开发和使用。 3. **UIComponent与RenderKit** UIComponent是JSF组件的基础类,代表用户...

    JSF1.2写的简单DEMO 对初学者有帮助

    5. **Facelets**:JSF 1.2引入了Facelets作为默认的视图层技术,它是一种XML-based的模板语言,用于创建用户界面。 **JSF 1.2 的DEMO解析** 在"JsfTest"这个DEMO中,我们可以预期看到以下几个关键部分: 1. **...

    jsf1.2入门教程(源码)

    2. **视图**:JSF使用JSP(JavaServer Pages)或Facelets作为视图层的表示技术,允许开发者用声明式的方式描述用户界面。 3. **模型**:JSF中的模型通常由JavaBeans组成,它们存储业务数据并处理业务逻辑。通过EL...

Global site tag (gtag.js) - Google Analytics