-ナビゲーション
Ikushipeのナビゲーションまわりを仕様変更。
以前はこんな感じで書いてました。
@WebPage public interface IndexPage { @EventHandler(moveTo=HelloPage.class) Class<?> hello(); }
これを、
@WebPage public interface IndexPage { Class<HeloPage> hello(); }
これでOKな感じに。固定の遷移先なら、固定の返値型にて示してもいいんじゃないかと。あわせて、Eclipseプラグインの都合から、アプリケーションはページを登録するようにしました。流行的には明示しなくても配置関係でざくっと解決するフレームワークが喜ばれてるようだけど、プラグインにきついんですよ。IkushipeはJavaVMとIDEに優しい仕組みなんで、ここに関しては人間(=漢w)に負担をかけることにしました。
@WebApplication public interface MyApplication { Class<IndexPage> index(); Class<HelloPage> hello(); }
メソッドの名前がページの名前です。また、これらをロジックつきの具象メソッドで書けるようにしました。
@WebApplication public class YourApplication { @PageResolver(possibleTo={IndexPage.class, HelloPage.class}) public Class<?> index(MyLogic logic, HttpServletRequest req) { if(logic.isIndex(req) { return IndexPage.class; } return HelloPage.class; } }