我正在尝试使用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>
答案 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 document在ExtensionFilter
中定义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>