velocity置換n改行はhtml

2199 ワード

文字列の「」改行文字をvelocityで
に変換するには、次の2つのソリューションが一般的です.
次の方法でテストしても正常に動作しない場合
#set($comments = $stringUtils.replace($comments, "
"
, "<br />"))

ただしjdk 1を用いると.4のString.replaceAll(new,old)はソリューション1を解決できます.
#set($comments = $comments.replaceAll("
"
, "<br />)

解決方法2:上記のような失敗した方法では、velocityに次のような方法を追加できます.
public void testCommonsStringUtils() throws Exception { 
    VelocityEngine engine = new VelocityEngine(); 
    engine.init(); 
    VelocityContext ctx = new VelocityContext(); 
    ctx.put("stringUtils", new StringUtils()); 
    ctx.put("comments", "this is a 
newline test"
); ctx.put("newline", "
"
); ctx.put("break", "<br />"); String template = "#set($comments = $stringUtils.replace($comments,$newline,$break))"; template += "$comments"; StringWriter writer = new StringWriter(); engine.evaluate(ctx, writer, "", template); assertEquals("this is a <br /> newline test", writer.toString()); }

転載元:velocity置換改行文字html