[Seasar-user:12137] &置き換えの不具合

Tsutomu Uchima [E-MAIL ADDRESS DELETED]
2007年 12月 17日 (月) 16:15:53 JST


うちまです。お世話になります。

forEach処理内でaタグのhref属性に複数のパラメーターを含めるケースですがパラ
メーター結合子を&と表記した際に不具合が発生するようです。再現ソースは下
記の通りです。

実行環境:jre1.5.0_12、apache-tomcat-5.5.23
プロジェクト:Dolteng 0.24.0にてteedaonlyプロジェクトを作成。xercesImpl-2.6.
2.jarが使用されています。



=== ソースここから ===

■foreach.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Foreach</title>
</head>
<body>
<h1>&amp; amp; Malfunction</h1>
<p>Foreach sample with array.</p>
<table border="1">
<tbody id="aaaItems">
<tr>
<td>
<a id="goForeach" href="foreach.html?foo=foo&amp;bar=bar">
link<span id="aaaIndex"/>
</a>
</td>
</tr>
</tbody>
</table>
<p>
foo=<span id="foo"/><br/>
bar=<span id="bar"/>
</p>
<p>
<a href="./foreach.html">foreach.html</a>
</p>
</body>
</html>

■ForeachPage.java

package example.web.foreach;

public class ForeachPage {

	public String foo;

	public String bar;

	public FooItem[] aaaItems;

	public int aaaIndex;

	public Class prerender() {
		aaaItems = new FooItem[3];
		aaaItems[0] = createItem("a1", "b1");
		aaaItems[1] = createItem("a2", "b2");
		aaaItems[2] = createItem("a3", "b3");
		return null;
	}

	private FooItem createItem(String foo, String bar) {
		final FooItem item = new FooItem();
		item.foo = foo;
		item.bar = bar;
		return item;
	}

	public static class FooItem {

		public String foo;

		public String bar;
	}

}

=== ソースここまで ===

実行するとaタグで生成されるリンクは

http://localhost:8080/teeda-eclipse-blank/view/foreach/foreach.html?amp;bar=
bar&foo=a1

の様になり&amp;が意図するような&になりません。その影響でbarの値もhtml直書き
のダミーが値となっているようです。&amp;ではなく&だと意図したリンク文字列が出
来ました。

teedaコミッター様の方でもご確認して頂けたらと思います。

以上です。




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