S2JSF1.0.17を入れました。
いろいろありまして、最近更新が止まっておりました。
先日更新いただきました、S2JSF1.0.17を入れました。
更新内容はこちらにあります。
http://www.seasar.org/wiki/index.php?SeasarWhatsNew%2F2006-09-03#u4d6669a
私からコメント差し上げた下記の修正については、問題なく動作していることを確認しました。
コミッタの皆さま、大変ありがとうございますm(_ _)m
[JSF-20] - m:rendered属性をつけると、HTML上にrendererd属性が付加されてしまう
HTMLも軽くなったようで、軽快です(^^
Tomcatのコネクションプーリングを使う方法
まとまった情報が見つからなかったので。
Seasar2ではS2DBCPがコネクションプーリングの機能を提供していますが、
既にTomcatのコネクションプーリングを利用しているようなアプリケーションと共存する場合、
Seasar2を利用しているアプリケーション側で、Tomcatのコネクションプーリングを利用することも可能です。
変更は以外と簡単です。
Contextの下にResourceを登録する例です(Tomcat4.1.x & Oracle)
<Context path="/app" reloadable="false" docBase="app" workDir="app/work" debug="0"> <Resource name="jdbc/MyDB" scope="Shareable" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/MyDB"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>url</name> <value>jdbc:oracle:thin:@localhost:1521:orcl</value> </parameter> <parameter> <name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value> </parameter> <parameter> <name>username</name> <value>user</value> </parameter> <parameter> <name>password</name> <value>pass</value> </parameter> <parameter> <name>maxWait</name> <value>3000</value> </parameter> <parameter> <name>maxIdle</name> <value>5</value> </parameter> <parameter> <name>maxActive</name> <value>3</value> </parameter> </ResourceParams> </Context>
<!-- <component name="connectionPool" class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl"> <property name="timeout">600</property> <property name="maxPoolSize">10</property> <property name="allowLocalTx">true</property> <destroyMethod name="close"/> </component> <component name="dataSource" class="org.seasar.extension.dbcp.impl.DataSourceImpl"/> -->
<component name="initialContext" class="javax.naming.InitialContext"/> <component name="dataSource" class="org.seasar.extension.j2ee.JndiDataSource"> <arg>initialContext</arg> <arg>"java:comp/env/jdbc/MyDB"</arg> </component>
動的なラジオボタンの生成方法と、Labelタグが使えない?という疑問
動的なラジオボタンの生成には、S2JSF独自の、selectOneRadio2が利用できます。
具体的には、
s:forEachでラジオボタンHTMLを動的に生成しつつ、
s:selectOneRadio2 で囲むことでid値や初期値の設定を行うものです。
requiredにも対応しています。
<form id="HogeForm" name="HogeForm"> <span m:inject="s:selectOneRadio2" id="hooId" m:value="#{hogeDto.hooId}" m:label="ほげ区分" m:required="true"> <span m:inject="s:forEach" m:items="#{hooList}" m:var="h"> <input type="radio" id="hooId" value="#{h.id}"/> <label for="HogeForm:hooId"><span m:value="#{h.name}"/></label> </span> <span m:inject="h:message" m:for="hooId" m:class="error" /> </span> </form>
以下のようなHTMLがレスポンスされます。
<input type="radio" id="hogeForm:_id134_0:hooId" name="hogeForm:hooId" value="1"> <label for="hogeForm:hooId">ふー</label> <input type="radio" id="hogeForm:_id134_1:hooId" name="hogeForm:hooId" value="2"> <label for="hogeForm:hooId">ばー</label>
-
-
- -
-
さて、ここで、ラジオボタンのテキスト部分を囲む<label>タグはどのように書くと有効になるのでしょうか?
ラジオボタンのid属性が動的に決まるため、labelのfor属性と一致させることができません...orz