views:

277

answers:

2

I am trying to implement a very simple RichFaces application (following the example at the developer guide, but am encountering an error I cannot solve.

My code appears to build and deploy correctly to Tomcat (localhost), but when the index page is opened I get the exception:

javax.faces.view.facelets.TagException: /index.xhtml @13,19 <a4j:form> Tag Library supports namespace: http://richfaces.org/a4j, but no tag was defined for name: form

The index page I am attempting to load is as follows:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:a4j="http://richfaces.org/a4j"
  xmlns:rich="http://richfaces.org/rich"
  xmlns:f="http://java.sun.com/jsf/core"&gt;
<h:head>
    <title>Facelet Title</title>
</h:head>
<h:body><f:view>
    <a4j:form>
        <rich:panel header="This is the title" style="width:400px;">
            <h:outputText value="Enter your name:"/>
            <h:inputText value="#{MyBean.message}">
                <f:validateLength minimum="1" maximum="20"/>
            </h:inputText>
        </rich:panel>
    </f:view></a4j:form>
</h:body>
</html>

This is the same as the example in the developer guide, as far as I can tell. I am developing within Netbeans 6.8, using the MyFaces implementation of JSF 2.0, and have added RichFaces and Apache Commons jar's as libraries, and the tag the exception is stating is actually auto-suggested by Netbeans!

From Apache Commons, I have added:
beanutils, collections, digester, logging

From RichFaces, I have added: richfaces-api, richfaces-impl, richfaces-impl-jsf2, richfaces-ui

If it would be useful to provide the bean code and/or web.xml, please say so, I just wanted to avoid a huge post for what may be a simple mistake.

A: 

Are you using RichFaces 3.x? I had the same problem recently (although in my case I couldn't use the JSF2.0 h:button) and my teammate googled that it's something with the techology and we simply have to wait for RichFaces 4.0 (if you won't solve it and really want I can ask him tomorrow for a link if he still has it).

Zenzen
Yeah, I forgot to add the version of RichFaces... v3.3.3.Final. If you could find that link it'd be great, cause I'd really like to understand the problem more. JSF 2.0 seems such an improvement on 1.2, and RichFaces seems to expand JSF very nicely, so it'd be a massive shame if its just some incompatibility I've encountered rather than something solveable!
obfuscation
A: 

I am using Richfaces 3.3.3.Final with Myfaces 2.0.1 without any problem.

Make sure you've added facelets-1.1.15.B1 And the following context params in web.xml

<context-param>
    <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
    <param-value>com.sun.facelets.FaceletViewHandler</param-value>
</context-param>
<context-param>
    <param-name>javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER</param-name>
    <param-value>true</param-value>
</context-param>

and try the following modified snippet

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:f="http://java.sun.com/jsf/core"&gt;
<head>
    <title>Facelet Title</title>
</head>
<body>
    <a4j:form>
        <rich:panel header="This is the title" style="width:400px;">
            <h:outputText value="Enter your name:"/>
            <h:inputText value="#{MyBean.message}">
                <f:validateLength minimum="1" maximum="20"/>
            </h:inputText>
        </rich:panel>
    </a4j:form>
</body>
</html>

There was a problem with f:view it was declared after the body but closed before </a4j:form>

mmanco
Having added these (both of which were missing), I am now not recieving any errors but the content on the page is not rendering at all in the browser. Viewing the source in browser, this reveals that all tags nested from <f:view> inclusive have not been parsed. Do you have any further suggestions as to what could be wrong?
obfuscation
Try to replace your code with the snippet from the updated answer. It should help.
mmanco
Unfortunately no change from the above... I've instead resorted to taking a sample project, and modifying from that. For some reason, I still couldn't manage to see what it had that made it work over mine. Thanks though
obfuscation