2009-07-07 9 views
0

J'essaye d'obtenir un tableau d'entrée dans ma classe d'action mais il retourne toujours null;Struts2: lire un tableau d'entrée dans une action

est ici le code HTML pour l'entrée

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

et est ici la classe pour l'action

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

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

Qu'est-ce que je fais mal?

Répondre

0

Va-t-il même jusqu'à l'action? Je suggère d'utiliser un écouteur HTTP comme Fiddler, ou IBM Page Detailer, afin que vous puissiez voir ce qui, le cas échéant, est même envoyé au serveur.

0

Veuillez prendre en compte une instruction de débogage dans votre action pour voir ce que vous obtenez. Je pense quelque chose comme au sommet de votre action:

Et je pense que ce serait mieux si vous utilisez le vrai HTML dans votre échantillon. Le "+ i +" chose n'est pas HTML et je ne peux pas voir d'ici comment cela est rendu au HTML. C'est probablement correct mais je préfère voir le code HTML tel que le voit le navigateur.

+0

h lol. c'était mon problème. J'ai oublié de changer "+ i +" en "+" + "+" –

3

Vous ne devriez pas avoir besoin de crochets.

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

rendrait le code html

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

suivante Cela devrait remplir la liste 'sentdate' de votre action.

2

Struts devrait remplir la liste mais pas :) La meilleure solution de ce problème consiste à utiliser les propriétés de la classe d'action Chaîne plutôt que Liste dans Struts. Si vous soumettez formulaire avec

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

vous reseive dans "private String sentdate" ceci: 1,2 et vous pouvez diviser cette chaîne avec delimiter virgule et vous donner la liste ..

0

comme Stanimir dit Même l'attribut "value" n'est pas requis. Il suffit d'envoyer les paramètres avec le même nom. Dans le côté serveur, nous obtiendrons la liste des chaînes.

Questions connexes