[cubby-user:132] Re: Cubbyでのoptgroup

AGATA Toshitaka [E-MAIL ADDRESS DELETED]
2009年 4月 9日 (木) 15:51:54 JST


縣です。

Cubbyはoptgroupをサポートしていません。
方法としては森脇さんが提示されているように
自力でやる形になります。

http://d.hatena.ne.jp/shin/20090327/p1

t:selectにoptgroupの機能を追加するよりも、
上記のエントリで指摘されているように、t:option、t:optionsのような
optionのみを出力できるタグがあれば良さそうですね。
今後のバージョンで対応を検討したいと思います。

(09.4.9 11:10 AM), k.moriwaki さんは書きました:
> 森脇と申します。
> 
> 私も以前同じ問題に悩まされたのですが、結局Cubbyのタグを使わずに
> Mayaaの機能を利用して出力しました。
> 
> 以下サンプルソースになります。
> (エスケープ等の処理は入れていません)
> 
> // ---------- OptgroupDto
> public class OptgroupDto implements Serializable {
> 	private static final long serialVersionUID = 1L;
> 	private String name;
> 	private Map<String, String>  options = new LinkedHashMap<String, String>();
> 	public void addOptions(String key, String value) {
> 		options.put(key, value);
> 	}
> 	public String getName() { return name; }
> 	public void setName(String name) { this.name = name; }
> 	public Map<String, String>  getOptions() { return options; }
> 	public void setOptions(Map<String, String>  options) { this.options = options; }
> }
> 
> // ---------- OptgroupAction
> public class OptgroupAction extends Action {
> 
> 	public List<OptgroupDto>  optgroupList;
> 
> 	public ActionResult index() {
> 		optgroupList = new ArrayList<OptgroupDto>();
> 
> 		OptgroupDto optgroup1 = new OptgroupDto();
> 		optgroup1.setName("Internet Explorer");
> 		optgroup1.addOptions("13", "Internet Explorer 3.*");
> 		optgroup1.addOptions("14", "Internet Explorer 4.*");
> 		optgroup1.addOptions("15", "Internet Explorer 5.*");
> 		optgroup1.addOptions("16", "Internet Explorer 6.*");
> 		optgroupList.add(optgroup1);
> 
> 		OptgroupDto optgroup2 = new OptgroupDto();
> 		optgroup2.setName("Netscape Browser");
> 		optgroup2.addOptions("23", "Netscape Navigator 3.*");
> 		optgroup2.addOptions("24", "Netscape Communicator 4.*");
> 		optgroup2.addOptions("26", "Netscape 6.*");
> 		optgroupList.add(optgroup2);
> 
> 		OptgroupDto optgroup3 = new OptgroupDto();
> 		optgroup3.setName("Other");
> 		optgroup3.addOptions("99", "その他");
> 		optgroupList.add(optgroup3);
> 
> 		return new Forward("index.html");
> 	}
> }
> 
> // ---------- index.html
> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
> "http://www.w3.org/TR/html4/loose.dtd">
> <html xmlns:m="http://mayaa.seasar.org" lang="ja">
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
> <title>Optgroup Test</title>
> </head>
> <body>
> <select id="select_browser">
> 	<optgroup m:id="group" label="foo">
> 		<option>foo1</option>
> 	</optgroup>
> 	<optgroup m:id="dummy" label="bar">
> 		<option>bar1</option>
> 	</optgroup>
> 	<optgroup m:id="dummy" label="baz">
> 		<option>baz1</option>
> 	</optgroup>
> </select>
> </body>
> </html>
> 
> // ---------- index.mayaa
> <?xml version="1.0" encoding="UTF-8"?>
> <m:mayaa xmlns:m="http://mayaa.seasar.org">
> 
> 	<m:forEach id="group" items="${optgroupList}" var="group">
> 		<m:echo>
> 			<m:attribute name="label" value="${group.name}" />
> 
> 			<m:forEach items="${group.options}" var="opt">
> 				<m:element name="option">
> 					<m:attribute name="value" value="${opt.key}" />
> 					<m:write value="${opt.value}"/>
> 				</m:element>
> 			</m:forEach>
> 		</m:echo>
> 	</m:forEach>
> 
>      <m:null m:id="dummy" />
> </m:mayaa>
> 
> 
> 2009/04/09 1:36 Takeya Otsuka<[E-MAIL ADDRESS DELETED]>:
>> はじめまして。
>> 大塚と申します。
>>
>>
>> CubbyとMayaaを利用しているのですが、optgroupタグを出力する方法がわからず躓いております。
>> タグリファレンスを参照してみたのですが、<t:select>では出力することはできないのでしょうか?
>>
>> もし出力できないのであれば、お勧めの代替手段をご教示いただけると幸いです。
>>
>> 以上、よろしくお願いいたします。
>> _______________________________________________
>> cubby-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/cubby-user
>>
> _______________________________________________
> cubby-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/cubby-user


-- 
-------------------------------
株式会社ヌーラボ 縣 俊貴
Mail : [E-MAIL ADDRESS DELETED]
HP   : http://www.nulab.co.jp/
TEL  : 03-5766-6256(東京)
      092-724-0020(福岡)
-------------------------------


cubby-user メーリングリストの案内