[Wicket-ja-user 352] Re: FeedbackPanel にメッセージを出力するとStackOverflowError等が起きてしまう。

Back to archive index

maeda aaake****@gmail*****
2009年 7月 6日 (月) 15:50:32 JST


maedaです。

矢野様、返信ありがとうございます。

自分がテスト用で作成したHtmlとJavaファイルがありますがこちらで
大丈夫でしょうか?

wicketのバージョンは1.3.1です。
バージョン1.4でも試しましたが同じ現象でした。


■Javaファイル(Test.java)■
package test;

import java.io.Serializable;

import org.apache.log4j.Logger;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.CheckBox;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.SubmitLink;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.model.CompoundPropertyModel;

public class Test extends WebPage {

	private TestFormBean testFormBean;
	private Form form;

	/**
	 *
	 * コンストラクタ
	 *
	 */
	public Test() {
		super();
		testFormBean = new TestFormBean();
		initDisp();
	}

	/**
	 *
	 * コンストラクタ
	 *
	 */
	public Test(TestFormBean testFormBean) {
		super();
		this.testFormBean = testFormBean;
		initDisp();
	}


	/**
	 *
	 * 初期表示
	 *
	 */
	private void initDisp(){
		//コンポーネント作成
		form = new Form("testForm",new CompoundPropertyModel(testFormBean));
		this.add(form);

		CheckBox renzoku = new CheckBox("renzoku");
		form.add(renzoku);

		FeedbackPanel feedbackPanel = new FeedbackPanel("feedbackPanelMsg");
		form.add(feedbackPanel);

		//ボタン
		form.add(insertLink);
	}


	/**
	 *
	 * touroku
	 *
	 */
	private SubmitLink insertLink = new SubmitLink("insertLink") {

		public void onSubmit(){
			info("メッセージ");
			setResponsePage(new Test(testFormBean));
//			setResponsePage(new Test());
		}
	};

	/**
	 *
	 * FormBean
	 *
	 */
	class TestFormBean implements Serializable {
	    private String renzoku;

		public String getRenzoku() {
			return renzoku;
		}
		public void setRenzoku(String renzoku) {
			this.renzoku = renzoku;
		}
	}

}


■HTMLファイル(Test.html)■
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<meta http-equiv="Content-Style-Type" content="text/css">
		<title>マスタ画面-新規登録</title>
	</head>
	<body onload="if(document.testForm.renzoku.checked != false){insertLink.onclick()};">
		<form name="testForm" wicket:id="testForm">
			<span wicket:id="feedbackPanelMsg">メッセージ出力位置</span>
			連続チェック(チェックして登録を押下すると連続で登録押下になる) 
			<input type="checkbox" wicket:id="renzoku"><BR/>
			<a id="insertLink" wicket:id="insertLink">登録</a>
		</form>
	</body>
</html> 



Tsutomu Yano <t_yano****@me*****> wrote:

> 矢野です。
> 
> > ただ、データ登録画面で新規データを連続で登録できるような画面で
> > 処理後に画面をクリアにする為にsetResponsePageを行っている箇所もあり
> > そちらでは前回のソースのような感じになってしまうのですが・・・。
> 
>  なるほど、入力を確定したらまた同じ画面が、未入力状態で表示されて、連続で入力できるんですね。
> うーん、原因がわからないのでなんとも言えないのですが、小さな、状態再現用コードなんてものを
> 用意できるでしょうか???
> 
>  それができると調べられるのですが。。。
> 
> 
> 
> 
> On 2009/07/03, at 13:57, maeda wrote:
> 
> > maedaです。
> >
> > 矢野様、返信ありがとうございます。
> >
> > setResponsePageを行わなければエラーが出ないようなので
> > setResponsePageを行う必要のないページではsetResponsePageを行わないようにすることにしました。
> >
> > ただ、データ登録画面で新規データを連続で登録できるような画面で
> > 処理後に画面をクリアにする為にsetResponsePageを行っている箇所もあり
> > そちらでは前回のソースのような感じになってしまうのですが・・・。
> >
> > FeedbackPanelにはValidatorでのメッセージ出力のみにし
> > 結果等のメッセージはinfoメソッド等は使用せずにLabel等に出力したほうがいいのでしょうか?
> >
> >
> > 前回記述し忘れましたが
> > wicketのバージョンは1.3.1です。
> 
> 
> 
> ---------------------------------------------------
> 矢野 勉(やの つとむ)
> 電子メール: t_yano****@me*****
> ---------------------------------------------------
> 
> _______________________________________________
> Wicket-ja-user mailing list
> Wicke****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user




Wicket-ja-user メーリングリストの案内
Back to archive index