2009-07-07 8 views
0

アクションクラスに入力配列を取得しようとしていますが、常にnullを返します。Struts2:アクションへの入力配列の読み込み

ここで入力

<input class="activityInput" type="text" name="sentdate[" + i + "]" value="1" /> 
<input class="activityInput" type="text" name="sentdate[" + i + "]" value="2" /> 

のためのHTMLだと、ここでアクション

public class ActivityAction extends ActionSupport{ 
    private List sentdate; 
    public List getSentdate() { 
    return sentdate; 
    } 

    public void setSentdate(List sentdate) { 
     this.sentdate = sentdate; 
    } 
} 

私は間違って何をやっているのクラスですか?

答えて

0

アクションにもなっていますか? FiddlerやIBM Page DetailerのようなHTTPリスナーを使用することをお勧めします。そうすれば何かがサーバーに送られているかどうかを確認することができます。

0

返品内容を確認するには、アクション内でデバッグに関する記述を検討してください。私はあなたの行動の一番上に何かを考えています:

そして私はあなたのサンプルで実際のHTMLを使用する方がよいと思います。 "+ i +"のもの はHTMLではなく、ここからどのようにHTMLにレンダリングされるのかわかりません。おそらく大丈夫ですが、私はブラウザが見ているようにHTMLコードを見たいと思っています。

+0

hol。それが私の問題でした。私は "+ i +"を\ "" + i "" \ "に変更するのを忘れました。 –

3

大括弧は必要ありません。

<s:textfield name"sentdate" value="1" /> 
<s:textfield name"sentdate" value="2" /> 

これはあなたの行動の 'sentdate' リストを移入する必要があり、次のHTMLに

<input type="text" name="sentdate" value="1" /> 
<input type="text" name="sentdate" value="2" /> 

をレンダリングします。

2

Strutsはリストを作成する必要があります。 この問題のより良い解決策は、Strutsアクションクラスプロパティの代わりにStringを使用することです。 あなたが

<input type="text" name="sentdate" value="1" /> 
<input type="text" name="sentdate" value="2" /> 

でフォームを送信する場合は、「sentdateプライベート文字列」に、このreseiveます:Stanimirが語ったとして1,2 、あなたはカンマ区切り文字で、この文字列を分割し、あなたのリストを与えることができます。..

0

を「値」属性さえ必要ない。同じ名前のパラメータを送信するだけで十分です。サーバサイドでは、文字列のリストを取得します。

関連する問題