[ 
https://issues.apache.org/jira/browse/TAPESTRY-1604?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Peterson updated TAPESTRY-1604:
-------------------------------------

        Fix Version/s:     (was: 5.0.5)
          Description: 
Simple example to demonstrate. The initial value of fullName in the bean has a 
couple of quotes in it. These are written directly to the HTML output instead 
of being turned into " entities.


import org.apache.tapestry.annotations.Persist;

public class Example {

    @Persist
    private MyBean myBean;

    public MyBean getMyBean() {
        return myBean;
    }

    public void setMyBean(MyBean myBean) {
        this.myBean = myBean;
    }
}
    
public class MyBean {
        private String fullName = "Fred \"Fredmeister\" Flintstone";

        public String getFullName() {
            return fullName;
        }

        public void setFullName(String fullName) {
            this.fullName = fullName;
        }
}


Example.html:

<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
<body>
        <t:beanEditForm object="myBean" />
</body>
</html>





  was:
Simple example to demonstrate. The initial value of fullName in the bean has a 
couple of quotes in it. These are written directly to the HTML output instead 
of being turned into &quot; entities.


import org.apache.tapestry.annotations.Persist;

public class Example {

    @Persist
    private MyBean myBean;

    public MyBean getMyBean() {
        return myBean;
    }

    public void setMyBean(MyBean myBean) {
        this.myBean = myBean;
    }
    
    public static class MyBean {
        private String fullName = "Fred \"Fredmeister\" Flintstone";

        public String getFullName() {
            return fullName;
        }

        public void setFullName(String fullName) {
            this.fullName = fullName;
        }
    }    
}


Example.html:

<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
<body>
        <t:beanEditForm object="myBean" />
</body>
</html>



    Affects Version/s: 5.0.5

This problem also occurs with the TextField component. It is not a problem with 
the TextArea component.

A workround is to explicitly set the "translate" property of all TextFields 
(for the BeanEditForm you have to provide blocks for each of them) to an 
instance of the following Translator:

import org.apache.tapestry.translator.StringTranslator;

public class SafeStringTranslator extends StringTranslator {

    public String toClient(String value) {
        return escapeXmlCharacters(super.toClient(value));
    }
    
    private String escapeXmlCharacters(String s) {
        return s
            .replaceAll("&", "&amp;")
            .replaceAll("\"", "&quot;")
            .replaceAll(">", "&gt;")
            .replaceAll("<", "&lt;");
    }
}


> BeanEditForm outputs text values raw (no escaping of HTML characters)
> ---------------------------------------------------------------------
>
>                 Key: TAPESTRY-1604
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1604
>             Project: Tapestry
>          Issue Type: Bug
>    Affects Versions: 5.0.5
>            Reporter: David Peterson
>            Priority: Critical
>
> Simple example to demonstrate. The initial value of fullName in the bean has 
> a couple of quotes in it. These are written directly to the HTML output 
> instead of being turned into &quot; entities.
> import org.apache.tapestry.annotations.Persist;
> public class Example {
>     @Persist
>     private MyBean myBean;
>     public MyBean getMyBean() {
>         return myBean;
>     }
>     public void setMyBean(MyBean myBean) {
>         this.myBean = myBean;
>     }
> }
>     
> public class MyBean {
>         private String fullName = "Fred \"Fredmeister\" Flintstone";
>         public String getFullName() {
>             return fullName;
>         }
>         public void setFullName(String fullName) {
>             this.fullName = fullName;
>         }
> }
> Example.html:
> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
> <body>
>       <t:beanEditForm object="myBean" />
> </body>
> </html>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to