2010-05-30 5 views
0

J'écris une application Spring 2.5 et dans mon jsp j'écris mes propres tags.Obtenir l'objet de commande

Il s'agit d'une liste d'objets ... quand je change le nombre de lignes que cette liste affiche (une combobox), je fais un submit sur mon formulaire retournant à la vue (obviosly avec le nouveau nombre de lignes retournées).

Lors de la liste avec mes propres balises, je dois obtenir les propriétés de mon objet de commande. J'ai accès à l'objet pageContext mais je ne peux pas déterminer où l'objet de commande est stocké.

Répondre

1

Par défaut, l'objet de commande est stocké sous un attribut "command" (demande ou étendue de session en fonction de la configuration de la propriété sessionForm). Vous pouvez changer cela en définissant la propriété commandName sur votre contrôleur et votre objet de commande sera inclus dans le modèle sous ce nom (et non la "commande" par défaut).

Une fois dans votre code de tag, vous pouvez utiliser request.getAttribute("command") ou, si sessionForm = true, session.getAttribute("command") pour accéder à votre objet de commande (en supposant que le nom par défaut "command"). Si vous avez modifié le nom de la commande à l'aide de la propriété commandName, utilisez-la à la place de "commande".

Habituellement, vous ne vous soucieriez pas de la portée de la commande, vous aurez donc accès à l'objet pageContext et vous pourrez faire un pageContext.findAttribute("command") et le rechercher dans toutes les étendues.

+0

Merci pour votre réponse! J'ai créé l'objet de commande, mais maintenant je suis confronté à un autre problème. Disons que j'ai une liste d'objets, d'abord je n'affiche que 10 d'entre eux. Lorsque l'utilisateur clique sur le bouton «Suivant», il affiche les 10 éléments suivants (je fais une soumission sur le formulaire). Mon problème est que quand il entre pour la première fois sur le contrôleur j'ai trouvé l'objet de commande mais la deuxième fois (après soumettre dans les balises) ce n'est pas le cas, je reçois null. J'ai résolu le problème en mettant la demande dans le contrôleur de l'objet de commande, de sorte que dans les balises je trouve toujours après soumets. Connaissez-vous un autre moyen? – Luisa

Questions connexes