1 votes

Transfert en STRUTS

Je fais suivre à une action en donnant comme

<forward  name="sample" path="/sample.do?button=default" />

Je veux ajouter un attribut supplémentaire dans le chemin et j'ai utilisé :

<forward  name="sample" path="/sample.do?button=default&value=text" />

...et j'obtiens org.xml.sax.SAXParseException

Une solution à ce problème ?

2voto

Jorge Gajon Points 1191

Comme l'ont déjà dit Omnipresent et Shashi, vous devez coder l'esperluette comme suit &amp; de sorte que le forward La définition ressemble à ceci :

<forward  name="sample" path="/sample.do?button=default&amp;value=text" />

Cependant, les URLs définis dans votre struts-config.xml sont figés, et si vous devez modifier dynamiquement une valeur ou ajouter un autre paramètre, vous pouvez le faire en créant un nouveau fichier ActionForward en fonction de l'avance que vous obtenez de mapping.findForward() .

ActionForward forward = mapping.findForward("sample");
StringBuilder path = new StringBuilder(forward.getPath());
path.append("?id=");
path.append(someobject.getId());
path.append("&value=");
path.append(getValue());
return new ActionForward(path.toString());

1voto

Shashi Points 3122
<forward  name="sample" path="/sample.do?button=default&value=text" />

Vous pouvez passer plusieurs paramètres en avant. Mais vous devez utiliser '&' au lieu de '&'.

Pour être tout à fait exact, le gestionnaire de l'analyseur doit rechercher dans le tampon les caractères d'esperluette (&);et les caractères de crochets à angle gauche (<) et les remplacer par les chaînes de caractères & ou <, selon le cas.

Ainsi, la déclaration prospective sera la suivante

<forward  name="sample" path="/sample.do?button=default&amp;amp;value=text" />

0voto

Omnipresent Points 6477

Vous ne pouvez pas utiliser '&' dans struts-config.xml

value=text doit être passé depuis votre action... et non de la façon dont vous essayez de le passer (dans l'url).

Votre balise forward doit être associée à une action. Cette action doit avoir un getter appelé value qui renvoie 'text'.

de quelle manière sample.do aura accès à cette variable.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X