私はエラーが投げ出されるの下に、プロパティのクラス名を取得しようとすると、私はその後、StringオブジェクトにBeanのプロパティを設定します。Stringオブジェクトのクラス名を取得する方法は?
期待ハッシュを。 plist [0] .javaTypeは、ibatis/macro.ftlの7行26列目のfreemarker.template.SimpleScalarの代わりに評価されました。
テンプレートコードは以下の通りです:
プロパティのJavaTypeはJava Beanに設定されている<#assign clsName=plist[0].javaType.class.name>
、クラス名が適切になったことができます。それはなぜです?私は、任意の型、Java Bean、非Java Beanを与えることができるプロパティを必要とします。
freemarker関数のように動作するTemplateMethodModelExのexecメソッドを実装することを意味しますか? fmがすべてのクラス名を自然に取得できないということは、Javaでコード化されていて、Javaで動作し、javaの多くの関数(メソッド)を持っていると聞くのは奇妙です。 – user1231111
テンプレート言語はJavaでは*実装されていますが、Javaの型/クラスは使用しません。文字列がある場合と同様に、 '.length()'はありません。これは、String以外のJavaオブジェクトを文字列として公開する可能性があり、そのオブジェクトは透過的な状態を維持する必要があるからです。とにかく、クラス名を取得しようと努力することができます(値が 'TemplateModelAdapter'などを実装しているかどうかを確認してください)。これはおそらくあなたの特定のアプリケーションにとっては十分ですが、FMが使用されるあらゆる場所で機能する解決策はありません。したがって、これはテンプレート言語には何もありません。 – ddekany
こんにちはddekany、あなたは私に値を決定する方法のサンプルを教えてくださいTemplateModelAdapterを実装する?ありがとう。 – user1231111