2011-09-25 19 views
4

私は、StringというキーとWicket PageParametersList<object>という値でフェッチを追加しようとしています。Wicketのページパラメータ

List<Example> list = (List<Example>)params.get("ExampleList"); 

すべてのヘルプは高く評価されています

ながら、キーと値を取得しています、私はこのようなものを使用していますclasscastException:String cant be converted into list.

を得ました。

+0

どのバージョンあなたが働くのですか? –

+1

パラメータの入力に対応するコードスニペットを表示できますか? –

答えて

9

PageParametersにはオブジェクトを格納できません。PageParametersはHTTP要求パラメータの抽象化であり、プロトコルはStringの値しかサポートしていないためです。パラメータから文字列のリストを取得し、それをExampleオブジェクトに処理する必要があります。

List<StringValue> values = parameters.getValues("examples"); 
for(StringValue value : values) { 
    Example example = new Example(value.toString()); 
    examples.add(example); 
} 
+0

ありがとうございます。私はこれを試し、この答えに印を付けます。 – jshree

+0

私はこのコメントで何かを理解していません。私はこの行はString values = parameters.get( "examples");パラメータgetメソッドは "string"を返します。私はリストに割り当てることができません。 get()mthdからString配列を取得しても、文字列オブジェクトをExampleオブジェクトインスタンスとして割り当てることはできません。 "Value.toString"は、Exampleクラスのコンストラクタでは使用できません。だから私はこのソリューションが動作するかどうかは分かりません。私が間違っている場合は教えてください。 – jshree

+0

私の例では、Wicket 1.5のコードで、 'PageParameters'のAPIが変更されています。 –

0
// Populate PageParameters 
final String dynamicValue = textFieldID.getModelObject();  
PageParameters pageParameters = new PageParameters(); 
pageParameters.add("username", usernameValue); 
pageParameters.add("username", "fixedValue"); 

// Retrieving PageParameters 
String newValue = parameters.getValues("username").get(1).toString(); 
// here newValue will contain "fixedValue" (the second element)