Passer un paramètre à une fonction JavaScript?
J'ai ce code
<%=out.write("<input
type=\"hidden\"
id=\"tid\"
value=\""+request.getParameter("id").toString()+"
\"/>")%>
<script type="text/javascript">
getPage(document.getElementById("tid").value)
</script>
Ce code crée un champ caché avec la valeur est de
<site root>/viewPage.jsp?id=erwdf
url et passer la valeur de ce champ caché dans une fonction jsp. Quand j'ai couru ce code sur Tomcat, il a donné une erreur comme
La méthode print(boolean) dans le type JspWriter n'est pas applicable pour
les arguments (void)
sur JSP ligne de code j'ai donné ci-dessus. Ainsi suis-je en train de faire quelque chose de mal ou n'importe quelle autre méthode pour passer un paramètre à une fonction JavaScript? Je ne connais pas beaucoup de choses à propos de Javascript tout juste de commencer à l'apprendre.
- Pourquoi donc trop compliqué avec un champ caché? Pourquoi ne pas simplement
getPage('<%=request.getParameter("id")%>')
? - merci @BalusC que c'était incroyable. En fait je n'ai pas beaucoup d'expérience en JavaScript. Maintenant sa donnant de la valeur que
getPage('adsd');
sont donc unique cité de données sont traités comme des chaînes de caractères en JavaScript? - Oui, sinon il est considéré comme une variable globale, mais vous n'avez pas de JS variable de même nom.
Vous devez vous connecter pour publier un commentaire.
Pourquoi donc trop compliqué avec un champ caché?
Il suffit de ne
Ou plus facile, avec EL
Que vous ne voulez échapper JS caractères par Apache Commons Lang
StringEscapeUtils
, sinon le générés code JS peuvent se briser à chaque fois que la valeur du paramètre contient un guillemet simple ou de tout autre JS caractère.Ou lorsque dans EL
Voir aussi:
Vous n'avez pas à le stocker dans un champ caché pour y accéder à partir de js. Vous pouvez le lire à partir de l'emplacement de documents. Personnellement, j'utilise une méthode de ce genre pour saisir les paramètres GET de mon url.
var id = getUrlVars()['id'];
Je crois que vous vouliez dire
<%out.write
au lieu de<%=out.write
sur l'autre problème, les commentaires, cela facilitera la getPage et effectuer échapper de citations, d'autres caractères spéciaux...
<input>
et à l'aide dedocument.getElementById
vous devriez vous suffit de passer directement àgetPage
--getPage("<% out.write(request.getParameter("id").toString()); %>")
-- probablement besoin de s'échapper, aussi, à l'intérieur des citations"<% out.write(request.getParameter("id").toString()); %>"
à getPage()?? J'ai seulement envie de passer à la valeur de l'id de getPage()out.write
-- j'ai édité ma réponse à montrer ce que je veux dire à propos de l'encodage, car vous pourriez avoir de la non-amicale des caractères dans votre paramètre de la requête qui pourraient corrompre l'appel à getPage.