JSF 1.1和MyFaces Tomahawk 1.1.9

时间:2010-02-10 22:21:49

标签: java jsf tomahawk

我正在尝试使用Myfaces Tomahawk中的日历组件。我正在使用Tomahawk 1.1.9和Websphere 6.1运行JSF 1.1。 看起来JSF1.1和Tomahawk 1.1.9不兼容,因为以下代码不起作用 -

<t:inputCalendar id="secondOne" monthYearRowClass="yearMonthHeader"
    weekRowClass="weekHeader" popupButtonStyleClass="standard_bold"
    currentDayCellClass="currentDayCell" value="#{dobBean.dateOfBirth}"
    renderAsPopup="true" popupTodayString="Shamik"
    popupDateFormat="MM/dd/yyyy" popupWeekString="Wk"
    helpText="MM/DD/YYYY" forceId="true" />

当通过IE 7访问此jsp页面时,它会抛出一些javascript问题,如未定义的popupcalender。我发现在渲染的HTML页面中添加了java脚本,但不知道为什么会出现这个问题?

知道我应该在JSF 1.1中使用哪个版本的Tomahawk?

编辑:

我已经在web.xml文件中配置了扩展过滤器。像这样的东西 -

<filter>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <!-- servlet-name must match the name of your javax.faces.webapp.FacesServlet entry -->
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<filter-mapping>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
</filter-mapping>   

2 个答案:

答案 0 :(得分:2)

我今天找到了这个问题的解决方案。这与websphere 6.1有关。我找到了以下link,其中人们遇到了类似我正在发生的类似问题。 正如上面的链接中所提到的,我在websphere包含中添加了一个自定义属性com.ibm.ws.webcontainer.invokefilterscompatibility = true,遵循此link

答案 1 :(得分:1)

Tomahawk兼容JSF 1.1和1.2(尚未使用JSF 2.0)。您所描述的问题可以识别,因为web.xml中没有正确配置ExtensionsFilter。虽然javadocs声明自Tomahawk 1.1.7以来不再需要这个,但我会尝试一下。只需根据this documentExtensionFilter中定义web.xml即可。它负责在响应中注入必要的脚本/样式。

<filter>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <!-- servlet-name must match the name of your javax.faces.webapp.FacesServlet entry -->
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>