[cubby-user:131] Re: Cubbyでのoptgroup
k.moriwaki
[E-MAIL ADDRESS DELETED]
2009年 4月 9日 (木) 11:10:30 JST
森脇と申します。
私も以前同じ問題に悩まされたのですが、結局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 メーリングリストの案内