[Seasar-user:2811] [S2JSF]session コンポーネントがformのdisabled指定で破壊
O.K.U.
oku
2005年 11月 11日 (金) 14:25:03 JST
O.K.U.です。いつもお世話になっております。
早速ですが、instance="session" としたコンポーネントのデータを
form の input タグで disbaled指定して表示すると、
表示そのものは元々の値が表示されるのですが、
その後、submit するとそのデータが壊されてしまいます。
表示している元々の内容にかかわらず、セッターが null で
呼ばれてしまうのが原因ですが、これは仕様でしょうか?
また、仕様だとすると回避する方法はありませんでしょうか?
セッターが呼ばれないか、せめて表示している値で再度
呼ばれればいいのですが、null で呼ばれて壊されてしまうと
困ってしまいます。
− hoge.html −−−−−−−−−−
<html xmlns:m="http://www.seasar.org/maya">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-31j" />
<title>Hoge</title>
</head>
<body>
<form>
<input type="text" disabled="true" m:value="#{hogeDto.hoge}"/>
<input type="submit" value="submit"/>
</form>
</body>
</html>
− hoge.java −−−−−−−−−−
package examples.jsf.dto;
public class HogeDto {
private String hoge;
public String getHoge() {
return hoge;
}
public void setHoge(String hoge) {
System.out.println(hoge);
this.hoge = hoge;
}
}
− hoge.dicon −−−−−−−−−−
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
"http://www.seasar.org/dtd/components21.dtd">
<components>
<component name="hogeDto" class="examples.jsf.dto.HogeDto" instance="session">
<property name="hoge">"foo"</property>
</component>
</components>
Seasar-user メーリングリストの案内