Dat gaat zo niet werken lieverd
Ten eerste die var exp = moet je natuurlijk niet in de URLDecode functie zetten.
Ten tweede, de <sql:query> tag wordt server side uitgevoerd. Het resultaat van de query komt in een variable te staan, maar het geeft zelf geen output. De data moet je zelf nog daaruit halen. De server side variable die jij gebruikt (Onder) is van Type result. Daarvan moet je eerste alle rijen aflopen, en per rij de data van de column eruit halen (TEKST). De data concateneer je dan aan een string.
Deze hele string URLEncoder je dan, en ken je toe aan je javascript variable.
Bedenkt echter dat je met server side en client side zit. Feitelijk doe je aan code generatie. Je *genereert* client-side code (dat genereren doe je server side) en die wordt gedraaid client-side.
Het lijkt erop alsof jij echt totaal geen idee hebt wat je aan het doen bent. Je moet ook de myObject.getMytext() niet letterlijk overnemen joh! Dat was alleen als voorbeeld gegeven. Wat jij nu aan het doen bent lijkt meer op scriptjes verzamelen dan echt programmeren (nofi).
Toch nog even een klein voorbeeldje, maar ik zou eerste eens gewoon leren wat functies en objecten etc zijn. (voor alle duidelijkheid, de code hieronder zet je dus NA je <sql:query> en de URLDecode functie neem je gewoon over zoals gegeven. Probeer ook zelf te begrijpen wat je doet hoor! De mensen geven over het algemeen alleen richtlijnen en patronen aan voor oplossingen, geen kant & klare copy-paste scriptjes

)
code:
1
2
3
4
5
6
7
8
9
10
| <% String content = ""; // stringbuffer is beter hier %>
<c:forEach var="row" begin="0" items="${Onder.rows}">
<c:set var="tekst" value="${row.TEKST}"/>
<jsp:useBean id="tekst" type="java.lang.String" />
<% content += tekst; %>
</c:forEach>
<script>
var bla = URLDecode( '<% URLEncoder.encode( content ); %>' );
</script> |
Merk op dat het stuk tussen <% %> en <c:forEach> op de server runt en niet in je output (response) komt. <script> is geen server-side commando, dus dat komt letterlijk in je output (e.g. kun je zien als je in je browser show source doet).
Er komt dus iets in je gegenereerde client-side source als:
var bla = URLDecode ( 'Dit+is+een+la%21n%98ge+string+%23Die+uit+%89%67de+DB+Komt' );
Dit stukje code wordt dan weer door de client gerunt, en resulteerd in de gedecodeerde string die in de client-side var bla staat.
Ik hoop dat dit je weer wat verder helpt.
PS
Het is overgens veel makkelijker als je de query gewoon in een java bean doet, zodat je vanaf je JSP alleen 1 enkele get doet op die bean. De <sql:> tags zijn eigenlijk niet echt bedoeld voor deze dingen, maar alleen om wat snel te testen.
[
Voor 33% gewijzigd door
flowerp op 01-04-2005 23:51
]
It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.