SAStruts + MayaaでMayaaの属性自動セットがうまくいかない場合の対処法
Mayaaを使っていると何かと重宝する属性自動セットですが、SAStrutsで使おうとして、うまくいかない場合は.mayaaファイルの定義があやしいです。
Doltengで生成した場合どうやら.mayaaのタグ定義箇所が以下のようになってます。
<m:mayaa xmlns:m="http://mayaa.seasar.org" xmlns:s="http://sastruts.seasar.org" xmlns:f="http://sastruts.seasar.org/functions" xmlns:bean="http://jakarta.apache.org/struts/tags-bean" xmlns:html="http://jakarta.apache.org/struts/tags-html" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fmt="http://java.sun.com/jstl/fmt" xmlns:fn="http://java.sun.com/jsp/jstl/functions">
んで、属性自動セットに書いてあるとおりに記述しても、うまくhtmlテンプレートの属性が引き継がれません。
org.seasar.mayaa.provider.ServiceProvider
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE provider PUBLIC "-//The Seasar Foundation//DTD Mayaa Provider 1.0//EN" "http://mayaa.seasar.org/dtd/mayaa-provider_1_0.dtd"> <provider> <templateAttributeReader> <!-- 無視する属性の設定 (複数記述可能) --> <ignoreAttribute qName="{http://struts.apache.org/tags-html}*" attribute="id" /> <ignoreAttribute qName="{http://struts.apache.org/tags-html}text" attribute="name" /> <ignoreAttribute qName="{http://struts.apache.org/tags-html}text" attribute="value" /> <!-- 別名で置き換える属性の設定 (複数記述可能) --> <aliasAttribute qName="{http://struts.apache.org/tags-html}*" attribute="styleId" templateAttribute="id" /> <!-- 機能を有効にする設定 (デフォルトは false) --> <parameter name="enabled" value="true" /> </templateAttributeReader> </provider>
上の2つの設定を見比べてみると違いが。。。
をぉ!!
.mayaaのタグリブは「http://jakarta.apache.org/struts/tags-html」なんだが、ServiceProviderの設定では「http://struts.apache.org/tags-html」になってる。。。
というわけで、設定ファイルと.mayaaのタグリブのURL記述方法が違っているせいでアンマッチとなり適応されていなかったようです。
Doltengで生成した(この場合はScaffoldなのかな??)mayaaのタグリブURLがJSPと違うので注意しましょう。