Scaffold には、用意されたデザインではなく、自由にデザインを変更できる機能がある。
これを使えば、もしかすると、本番システムにおいても利用できる機能なのかもしれない。
WEBルートにインストールしてある / ModelGlue / unity / config / ScaffoldingConfiguration.xml を、例えば / shopping / config のディレクトリ(下記の ColdSpring.xml で場所を指定できるので任意)にコピーする。
また、/ ModelGlue / unity / xsl に入っている3つのXSLファイルをアプリケーションディレクトリ(これも任意)にコピーする。例えば、/ shopping / xsl のディレクトリなど。
次にColdSpring.xml に一行追加する。
<beans>
<bean id="modelGlueConfiguration" class="ModelGlue.unity.framework.ModelGlueConfiguration">
<property name="scaffoldConfigurationPath"><value>/shopping/config/ScaffoldingConfiguration.xml</value></property>
</bean>
</beans>
さきほどコピーした ScaffoldingConfiguration.xml 内に、3つのXSLファイルのパスを指定する場所があるので、それぞれ、コピー先のパスに設定する。
こうすることによって、XSLファイルを変更すれば、そのデザインに変更できるわけだ。
しかし、ここでもまた文字エンコードの問題が発生した。
XSLファイルの読み込みを、OSのデフォルトエンコーディングでやってくれる。というわけで、XSLファイルには、いわゆる2バイト文字を入れない方がいいらしい。
このXSLファイルは、読み込まれた後、CFMLファイルとして処理されるので、2バイト文字に関しては、いろいろとやり方はあるだろう。
XMLファイルといい、このXSLファイルといい、やっぱり、こういうものは、1バイト文化圏の人は、深くは考えてくれないんだな。
もちろん、OSのデフォルトエンコーディングで読み込んでいるわけだから、あながち間違っているわけでもないんだけど。
それから、よくある話で、Linux 環境で動かして初めて気づくのが、ディレクトリ権限の問題。
自動で色々してくれるということは、色々とファイルを生成しているということでもあって、当然、書き込みができないとエラーになる。
以下のディレクトリ、ファイルに書き込めたり、生成したファイルを変更できるように適切に権限設定する必要がある。
/shopping/model/data/transfer/
/coldspring/aop/framework/tmp
/shopping/views/generated/
/shoppingconfig/scaffolds/Scaffolds.xml
若干、めんどくさいが仕方ない話だろう。