A value input into an inputTextarea of JSF tag is trimmed white-space characters automatically when data gets rendered in page.
Trim handling for the inputTextarea is the following (org.ajax4jsf.org.w3c.tidy.ParserImpl.java)
3115# /** 3116# * Parser for text nodes. 3117# */ 3118# public static class ParseText implements Parser 3119# { 3120# 3121# /** 3122# * @see org.ajax4jsf.org.w3c.tidy.Parser#parse(org.ajax4jsf.org.w3c.tidy.Lexer, org.ajax4jsf.org.w3c.tidy.Node, short) 3123# */ 3124# public void parse(Lexer lexer, Node field, short mode) --- snip --- 3240# while ((node = lexer.getToken(mode)) != null) 3241# { 3242# if (node.tag == field.tag && node.type == Node.END_TAG) 3243# { 3244# field.closed = true; => 3245# Node.trimSpaces(lexer, field); 3246# return; 3247# } 3248# 3249# // deal with comments etc. 3250# if (Node.insertMisc(field, node)) 3251# { 3252# continue; 3253# } 3254# 3255# if (node.type == Node.TEXT_NODE) 3256# { 3257# // only called for 1st child 3258# if (field.content == null && !((mode & Lexer.PREFORMATTED) != 0)) 3259# { 3260# Node.trimSpaces(lexer, field); 3261# } 3262# 3263# if (node.start >= node.end) 3264# { 3265# continue; 3266# } 3267# 3269# field.insertNodeAtEnd(node); 3270# continue; 3271# } ....