JSF2:标签没有呈现,但通常的“修复”并没有削减它

时间:2011-10-12 07:52:55

标签: jsf-2 rendering

我的问题类似于: JSF tags not renderedJSf tags not being rendered以及JSF tags not being rendered as HTML没有任何建议可以帮助我。

基本上问题是,无论是否通过欢迎页面,都不会呈现页面。 IE尝试下载文件和chrome基本上只是跳过所有的jsf标签。很明显,它不是由框架翻译,但我不明白为什么。

后面的故事是我做了一个将系统从jsf 1.2转换为jsf2的试验。飞行员成功了,我设法让它在试点部门工作。但是,当我试图实现同样的事情时,我无法让它发挥作用。

通常的问题似乎是(相应经验丰富的回答者BalusC):

页面URL与FacesServlet的url-pattern不匹配,因此没有机会解析标签。 或者:标记中缺少JSF组件的xmlns声明,因此它被视为明文。

通常的修正似乎是: 在html声明中包含xmlns(我在web.xml和.xhtml文件中都有这个) 在web.xml中包含或修改Faces Servlet Mapping。然而,我可以找到我的错。我也尝试将/ faces / *切换为* .xhtml。我认为在web.xml中相关的部分包含在下面(整个文件很大,这是一个很大的系统):

web.xml的一部分:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_5.xsd"
    version="2.5">

<context-param>
    <description>
        Tell the runtime where we are in the project development
        lifecycle.
    </description>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>

<context-param>
    <param-name>facelets.DEVELOPMENT</param-name>
    <param-value>true</param-value>
</context-param>
    <context-param>
    <param-name>com.sun.faces.expressionFactory</param-name>
    <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
  <servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
<url-pattern>*.xhtml</url-pattern>

      

 <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
  </context-param>
<welcome-file-list id="default">
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
    </welcome-file-list>

我知道欢迎文件是一个html文件,但这在飞行员中起作用。该文件使用

<body bgcolor="#FFFFFF" onload="window.location='portal/login/login.jsf'">
</body>

让事情顺利进行。如果我手动将地址输入到包含很少和简单代码的随机测试页面中,问题仍然会发生,因此问题与欢迎页面无关。

很乐意协助任何其他信息,我真的陷入困境。谢谢你的阅读。

1 个答案:

答案 0 :(得分:0)

通过编辑faces-config解决以包含xmlns:xsi。