Uploaded image for project: 'MyFaces Core'
  1. MyFaces Core
  2. MYFACES-3947

Passthrough Element textarea doesn't work

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.2.6
    • 2.2.8
    • JSR-344
    • None
    • TomEE 1.6.0-SNAPSHOT through TomEE 1.7.x using MyFaces 2.2.x as substitute for Java EE 6 MyFaces versions. CDI is managing the bean lifecycles.

    Description

      <textarea> used as a passthrough element cannot be rendered.

      Use the following facelet:
      <!DOCTYPE html>
      <html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
      xmlns:jsf="http://xmlns.jcp.org/jsf">
      <head jsf:id="head">
      <title>Email Test</title>
      </head>
      <body jsf:id="body">
      <form jsf:id="form">
      <input type="text" jsf:id="name"
      placeholder="Enter name"
      jsf:value="#

      {contactUs.fromName}

      "/>
      <br/>
      <br/>
      <input type="text" jsf:id="email-address"
      placeholder="Enter email address"
      jsf:value="#

      {contactUs.fromEmail}

      "/>
      <br/>
      <br/>
      <textarea jsf:id="contact-message"
      name="comments"
      placeholder="I wanna talk about..."
      jsf:value="#

      {contactUs.message}

      "/>
      <br/>
      <br/>
      <button type="submit" jsf:action="#

      {contactUs.submit}

      ">Send Email</button>
      </form>
      </body>
      </html>

      You'll see an error similar to the following:
      /email-test.xhtml at line 25 and column 64 <textarea> Tag Library supports namespace: http://xmlns.jcp.org/jsf/html, but no tag was defined for name: inputTextArea

      viewId=/email-test.xhtml
      location=/path/to/file
      phaseId=RENDER_RESPONSE(6)

      Caused by:
      javax.faces.view.facelets.TagException - /email-test.xhtml at line 25 and column 64 <textarea> Tag Library supports namespace: http://xmlns.jcp.org/jsf/html, but no tag was defined for name: inputTextArea
      at org.apache.myfaces.view.facelets.compiler.CompilationManager.pushTag(CompilationManager.java:300)

      Replace MyFaces with Mojarra 2.2.9+ and the facelet will render.

      You may also want to check if the textarea's value will be passed to a backing bean. The message field's value is never set in the backing bean for Mojarra. I have to use h:inputTextarea for the backing bean's value for that field to be set.

      In case you need it for convenience's sake, here's the backing bean:
      import java.io.Serializable;
      import javax.enterprise.context.RequestScoped;
      import javax.inject.Named;

      /**
      *

      • @author Chris Harris
        */
        @Named
        @RequestScoped
        public class ContactUs implements Serializable {
        private static final long serialVersionUID = -1L;

      private String fromName, fromEmail, message;

      public void setFromName(String fromName)

      { this.fromName = fromName; }

      public String getFromName()

      { return this.fromName; }

      public void setFromEmail(String fromEmail)

      { this.fromEmail = fromEmail; }

      public String getFromEmail()

      { return this.fromEmail; }

      public void setMessage(String message)

      { this.message = message; }

      public String getMessage()

      { return this.message; }

      public void submit()

      { System.out.println("Here's the data..."); System.out.println("fromName: " + fromName); System.out.println("fromEmail: " + fromEmail); System.out.println("message: " + message); }

      }

      Attachments

        Activity

          People

            lu4242 Leonardo Uribe
            Chris Harris Chris Harris
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: