Seasar2チュートリアル(1)
S2Containerリファレンス読むのもいいけど、少しは手を動かそう!ということでチュートリアルが無いかぐぐってみる。で、ヒットしたのがこれ→http://www.wikiroom.com/Seasar/?Seasar%20V2
別な人がやっているblog上のチュートリアルの目次みたいなもの。
やっていくといろいろエラーが出るのでdebugしながら進めたのでそのメモ。
List03-4 car.xml
- DOCTYPEが無いためエラーになるので、下のように追加。
- 拡張子は dicon の方が今風か?
<?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN" "http://www.seasar.org/dtd/components.dtd"> <components> <component class="...."/> </components>
list06-2. Car.xml
'red'より"red"の方が適切?と思ったらOGNLではなくSel(Seasar expression language)?何それ?もしかしてこのチュートリアルの前提Versionがかなり古かったりして。
list10-2. ABS.java
は、今のSeasar(2.2.7)にはない。多分AbstractInterceptorを使って下みたいにするのが今風かな?xmlの方は直さなくて大丈夫。
package ...; import org.aopalliance.intercept.MethodInvocation; import org.seasar.framework.aop.interceptors.AbstractInterceptor; public class ABS extends AbstractInterceptor { public Object invoke(MethodInvocation invocation) throws Throwable { System.out.println("Ooops, danger!"); Object ret = invocation.proceed(); System.out.println("Kikikiki..."); return ret; } }
list13-2. car.xml
out.print()ではエラーになる。ONGLでは(?)#を付加して#out.print()とする。
list14-4. Dealer.java
Jointpoint#getArgs()がダメなので書き換える。
package ...; import org.aopalliance.intercept.MethodInvocation; import org.seasar.framework.aop.interceptors.AbstractInterceptor; public class Dealer extends AbstractInterceptor { public Object invoke(MethodInvocation invocation) throws Throwable { Object[] args = invocation.getArguments(); : }
続きは明日。