Velocity Engine Пренебрегване на знак @?

Използвам velocity v1.7 за изпращане на имейл с JDK v1.7

Имам кода по-долу:

VelocityContext context = new VelocityContext();
String name = "[email protected]";
context.put("userName", name);

И в имейл шаблона (abc.vm) използвах кода по-долу:

#if(${userName})        
    Dear ${userName},<br><br>
#end

По някакъв начин, когато получа имейла, той казва само

Dear  

вместо

Dear [email protected]

Ако променя кода на Java, за да има правилно име без знак @, тогава имейлът се показва правилно

Dear myName

Може ли някой да ми каже защо знакът @ се пропуска, всъщност защо пропуска цялото име и не го включва в имейла????

Благодаря!


person Mike    schedule 25.09.2012    source източник
comment
Опитайте myname\\@yahoo.com   -  person Reimeus    schedule 26.09.2012


Отговори (1)


Опитах се да възпроизведа и проблемите изглежда са някъде в изпращането на имейла. Самата скорост прави това добре.

Можете да стесните такъв проблем, като напишете резултата от Velocity в изхода, журнала или файл, така че да видите какъв е текстът в този момент. Също така отстраняването на грешки ще ви покаже каква скорост се връща и къде в изпращането на имейл има проблем със специални знаци.

Код: VelocityContext context = нов VelocityContext();

    context.put("name", "[email protected]");

    String name = "[email protected]";
    context.put("userName", name);

    Template template = null;

    template = Velocity.getTemplate("test.vm");

    StringWriter sw = new StringWriter();

    try {
        template.merge(context, sw);
    } finally {
        sw.close();
    }
    System.out.println(sw);

Шаблон:

Hello $name!

#if(${userName})        
    Dear ${userName},<br><br>
#end

Резултатен резултат:

Hello [email protected]!

    Dear [email protected],<br><br>
person centic    schedule 27.09.2012