2010-08-04 7 views
2

Je suis nouveau sur Struts2 mais je suis aux prises avec un problème depuis maintenant 2 jours.Struts2 param tag avec javascript

Fondamentalement, je veux mettre en place une balise <s:param> dans un <s:url> avec le contenu d'une balise div quelque part dans la page.

<div id="div1">My value</div> 
    <s:url action="myAction" var="url"> 
    <s:param name="param1">...content of div1...</s:param> 
</s:url> 

Quand j'ai essayé d'intégrer certains appellent javascript dans les <s:param> balises, javascript appels ne sont pas évalués.

Ma question est la suivante: existe-t-il un moyen de lier un appel javascript à une balise <s:param> chaque fois qu'il est évalué?

Merci beaucoup

Répondre

2

Malheureusement, il est impossible avec la balise <s:param> car cette balise est rendu avant que la page est servi à l'utilisateur (il doit remplir le lien avant qu'il rend au navigateur où Javascript peut prendre le contrôle). Ce que vous essayez de faire serait cependant possible avec un loadloader. Ci-dessous un exemple de la façon dont jQuery, vous pouvez l'accomplir:

$(document).ready(function(){ 
    var theDivContents = $('#div-id').text(); 
    var newLinkHref= $('#link-id').attr('href') + "&divContents=" + theDivContents; 

    $('#link-id').attr('href', newLinkHref); 
}); 

Une autre option si vous utilisez Struts pour alimenter le <div> que vous souhaitez utiliser comme lien param serait de capturer que dans une variable avant de vous rendre le lien et ensuite l'utiliser directement dans le <s:param> tag:

<div id="div1">${yourValue}</div> 
<s:url action="myAction" var="url"> 
    <s:param name="param1">${yourValue}</s:param> 
</s:url> 
Questions connexes