[Seasar-user:15849] Re: [teeda]isAaaの使い方

Tetsutaroh Satoh [E-MAIL ADDRESS DELETED]
2008年 9月 26日 (金) 14:58:37 JST


あきら様
佐藤徹太郎です。

ご返信ありがとうございました。

> ちょっと不必要なコードが多すぎます
> 質問するときには最低限現状が確認できるだけの
> コードに削りましょう

すいません。以後、気を付けます。

> なんで動かないかは、いまあるソースを他の名前で作って
> その中身を削っていって最低限のソースにしてみてから
> 私のソースと見比べてもらえればと思います。

あきら様の言われるように、最低限のソースにして
試したところ、チェックボックスは表示されるように
なったのですが、しかし、問題が出てきてしまいました。

prerender()メソッドにaaaItemsの中身を書いて、
実行し、ラジオボタンを表示させ、ラジオボタンを
クリックしてからサブミットすると、
doSubmit()メソッドが呼び出されないという
現象がおこります。
isAaa()メソッドとprerender()メソッドは
呼び出されます。

ご教授いただけたらありがたいです。

以下、HTMLとPageクラス

【HTML】

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="../../css/global.css"/>
<title>第1問</title>
</head>
<body><span id="count" />
<form id="questionForm">
<span id="isAaa">
<span id="aaa" style="pageDirection">
  <input type="radio" name="aaa" value="1"/>aaa
</span>
</span>
<span id="isNotAaa">
<span id="bbb" style="pageDirection">
  <input type="checkbox" name="bbb" value="0"/>label0
</span>
</span>
<input type="button" value=" 次 " id="doSubmit"/>
</form>
</body>
</html>

【Pageクラス】

public class QuestiontestPage {

	public Integer aaa;
	public Integer[] bbb;
	public List<Map<String, Object>> aaaItems;
	public List<Map<String, Object>> bbbItems;
	@PageScope
	public int count;
	
	public Boolean isAaa() {
		if (this.count == 3) {
			return false;
		} else {
			return true;
		}
	}

	public Class doSubmit() {
		this.count++;
		return null;
	}

	public Class initialize() {
		this.count = 1;
		return null;
	}

	public Class prerender() {
		if (count == 1) {
			aaaItems = new ArrayList<Map<String, Object>>();
			Map<String, Object> map1 = new HashMap<String,
Object>();
			map1.put("label", "A   2");
			map1.put("value", new Integer(1));
			aaaItems.add(map1);
			Map<String, Object> map2 = new HashMap<String,
Object>();
			map2.put("label", "B   3.14159276L");
			map2.put("value", new Integer(2));
			aaaItems.add(map2);
			Map<String, Object> map3 = new HashMap<String,
Object>();
			map3.put("label", "C   0777");
			map3.put("value", new Integer(3));
			aaaItems.add(map3);
			Map<String, Object> map4 = new HashMap<String,
Object>();
			map4.put("label", "D   0xDeadBeef");
			map4.put("value", new Integer(4));
			aaaItems.add(map4);
		}
		
		if (count == 2) {
			aaaItems = new ArrayList<Map<String, Object>>();
			Map<String, Object> map1 = new HashMap<String,
Object>();
			map1.put("label", "A   java");
			map1.put("value", new Integer(1));
			aaaItems.add(map1);
			Map<String, Object> map2 = new HashMap<String,
Object>();
			map2.put("label", "B   goto");
			map2.put("value", new Integer(2));
			aaaItems.add(map2);
			Map<String, Object> map3 = new HashMap<String,
Object>();
			map3.put("label", "C   $200");
			map3.put("value", new Integer(3));
			aaaItems.add(map3);
			Map<String, Object> map4 = new HashMap<String,
Object>();
			map4.put("label", "D   _x");
			map4.put("value", new Integer(4));
			aaaItems.add(map4);
			Map<String, Object> map5 = new HashMap<String,
Object>();
			map5.put("label", "E   classA");
			map5.put("value", new Integer(5));
			aaaItems.add(map5);
		}
		return null;
	}

}

よろしくお願いいたします。


-----Original Message-----
From: [E-MAIL ADDRESS DELETED]
[mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of あきら
Sent: Thursday, September 25, 2008 12:31 PM
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:15839] Re:[teeda]isAaaの使い方

あきらです

> isAaa()メソッドを条件分岐でfalseを返すようにしているのですが、
> 期待どうりの結果にはなりません。

ちょっと不必要なコードが多すぎます
質問するときには最低限現状が確認できるだけの
コードに削りましょう

DBにアクセスするコードの場合、第三者が動かすことが
非常に困難です

一部意味がわかりにくいところがありましたが、概ね
以下のようなコードでしょうか?

なんで動かないかは、いまあるソースを他の名前で作って
その中身を削っていって最低限のソースにしてみてから
私のソースと見比べてもらえればと思います。

あきら

============================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<span id="Count" />
<form id="Form">
	<span id="isAaa">
		isAaa
	</span>
	<span id="isNotAaa">
		isNotAaa
	</span>
	<input type="button" value=" 次 " id="doSubmit" />
</form>
</body>
</html>
============================================
package teeda.web.teeda;

import org.seasar.teeda.extension.annotation.scope.PageScope;

public class IstestPage {
	@PageScope
	public int Count;

	public Boolean isAaa() {
		if( this.Count % 2 == 1 ){
			return false;
		} else {
			return true;
		}
	}

	public String doSubmit() {
		this.Count++;
		return null;
	}

	public String initialize() {
		this.Count = 0;
		return null;
	}

	public String prerender() {
		return null;
	}
}
_______________________________________________
Seasar-user mailing list
[E-MAIL ADDRESS DELETED]
https://ml.seasar.org/mailman/listinfo/seasar-user




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