0.8.2からのSAStrutsの設定
app.diconにmobylet.diconを記述する。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" "http://www.seasar.org/dtd/components24.dtd"> <components> <include path="convention.dicon"/> <include path="aop.dicon"/> <include path="j2ee.dicon"/> <include path="s2jdbc.dicon"/> <include path="mobylet.dicon"/> <component name="actionMessagesThrowsInterceptor" class="org.seasar.struts.interceptor.ActionMessagesThrowsInterceptor"/> </components>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <context-param> <param-name>sastruts.VIEW_PREFIX</param-name> <param-value>/WEB-INF/view</param-value> </context-param> (中略) <!-- MobyletFilter Start --> <filter> <filter-name>mobyletfilter</filter-name> <filter-class>org.seasar.mobylet.http.S2MobyletFilter</filter-class> </filter> <filter-mapping> <filter-name>mobyletfilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> <!-- MobyletFilter End --> <filter-mapping> <filter-name>encodingfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 以下省略
これで以下のようにするとDIされる。
@Resource protected Mobylet mobylet; @Execute(validator = false) public String index() { mobylet.getUid() }
DIされてなくても
MobyletFactory.getInstance().getUid();
も可能なようです。