1

只是想知道这是否可能,如果是的话,扩展 play.api.templates.Html 类有多难。

import java.lang.StringBuilder;

public class MyHtml extends play.api.templates.Html {

}

给我错误:

error: constructor Html in class Html cannot be applied to given types;

这给出了相同的结果:

public class MyHtml extends play.api.templates.Html {
    String text;

    public MyHtml(String text) {
        this.text = text;
    }
}

谢谢

4

1 回答 1

1

play.api.templates.Html是用 Scala 而不是 Java 编写的,所以它使用 not java.lang.StringBuilderbut scala.collection.mutable.StringBuilder

这可以编译(我不是说这是有用的,甚至是好的做法):

package views;

public class MyHtml extends play.api.templates.Html {
    private String text;

    public MyHtml(String text) {//please take care of HTML injection!!!
        super(scala.collection.mutable.StringBuilder$.MODULE$.newBuilder());
        this.text = text;
    }

    @Override
    public String body() {
        return text;
    }
}
于 2013-10-20T20:41:46.197 回答