- ライトニングJava(連載が行われていて、結構おもしろい)
Seasar2の本を購入しました。
なかなか読む時間がとれないですが、よくできてるな〜Seasar。すごい使いやすい。
OGNLが使用できるのがいいですね。TapestryもOGNLで記述するので。
設定ファイル(diconファイル)を書くのがSpringに比べてすごく楽。
こんなんをサンプルでつくったりしてるんですが、こういうのはあまりやらない
ことなんですかね〜。SwingとかでSeasar使ったらすごい効率がいいと思うのですが。
<?xml version="1.0" encoding="Windows-31J"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.3//EN" "http://www.seasar.org/dtd/components23.dtd"> <components> <include path="gsf/samples/seasar2/sample001/components/sample001-2.dicon"/> <component name="myMainWindow" class="javax.swing.JFrame"> <property name="title">"Swing With Seasar2"</property> <property name="defaultCloseOperation">@javax.swing.JFrame@EXIT_ON_CLOSE</property> <initMethod>#self.setSize(400, 200)</initMethod> <property name="contentPane">myContentPane</property> </component> </components>
<?xml version="1.0" encoding="Windows-31J"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.3//EN" "http://www.seasar.org/dtd/components23.dtd"> <components> <component name="myFont" class="java.awt.Font"> <arg>"Dialog"</arg> <arg>@java.awt.Font@PLAIN</arg> <arg>24</arg> </component> <component name="myFontForTextField" class="java.awt.Font"> <arg>"Monospaced"</arg> <arg>@java.awt.Font@BOLD</arg> <arg>30</arg> </component> <component name="myLabel" class="gsf.samples.seasar2.sample001.components.MyLabel"> <property name="text">"Swing On Sesar2!!"</property> <property name="font">myFont</property> <property name="foreground">@java.awt.Color@WHITE</property> </component> <component name="myTextField" class="javax.swing.JTextField"> <property name="text">"Swing On Seasar2!!"</property> <property name="font">myFontForTextField</property> <property name="caretPosition">0</property> </component> <component name="myTable" class="gsf.samples.seasar2.sample001.components.MyTable"> </component> <component name="myContentPane" class="javax.swing.JPanel"> <property name="layout">new java.awt.BorderLayout()</property> <property name="background">@java.awt.Color@BLACK</property> <initMethod>#self.add(myLabel, @java.awt.BorderLayout@NORTH)</initMethod> <initMethod>#self.add(myTable, @java.awt.BorderLayout@CENTER)</initMethod> <initMethod>#self.add(myTextField, @java.awt.BorderLayout@SOUTH)</initMethod> </component> </components>
package gsf.samples.seasar2.sample001; import javax.swing.*; import org.seasar.framework.container.*; import org.seasar.framework.container.factory.*; public class SwingOnSeasar2{ private static final String DICON_PATH = "gsf/samples/seasar2/sample001/sample001.dicon"; public static void main(String[] args){ final S2Container container = S2ContainerFactory.create(DICON_PATH); javax.swing.SwingUtilities.invokeLater(new Runnable(){ public void run(){ JFrame window = (JFrame) container.getComponent("myMainWindow"); window.setVisible(true); } }); } }
S2Containerはinit()しなくても動くみたいだけど、したほうがいいのかな。