Toon posts:

[JSP] variabele uit bean mee geven in query

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal

al een paar dagen ben ik aan het zoeken naar een oplossing voor het volgende probleem, ik hoop dat jullie mij kunnen helpen

ik wil namelijk een waarde die ik in een bean gezet heb mee geven in een query als selectie criteria.

zo iest dus:
code:
1
2
3
4
5
6
7
8
        <sql:query var="menu" scope="session" sql="
            SELECT *
            FROM MENU
            WHERE TAAL = ?
            ORDER BY VOLGORDE ASC">
            <sql:param value="<jsp:getProperty name="taal" property="taal" />">
            
        </sql:query>

ook dit heb ik al geprobeerd:
code:
1
2
3
4
5
6
7
8
9
        <%-- haal waardes voor menu uit database --%>
        <sql:query var="menu" scope="session" sql="
            SELECT *
            FROM MENU
            WHERE TAAL = ?
            ORDER BY VOLGORDE ASC">
            <sql:param value="<% out.println(taal.getTaal()); %>"/>
            
        </sql:query>


hoe zou ik dit wel voor elkaar kunnen krijgen?
bedankt voor de moeite alvast

Verwijderd

Wat denk jij dat "out.println" doet?

Als het antwoord op die vraag weet heb je ook de oplossing voor je probleem :)

Verwijderd

Topicstarter
outprintln geeft de waarde die tussen haakjes staat weer.

Verwijderd

Ik zal wel gek zijn, maar volgens mij drukt out.println naar de commandline?? Moet je niets hebben in de trend van echo / write?

Verwijderd

Topicstarter
dat zou heel goed kunnen
maar het probleem is dat ook dat niet over genomen wordt.
ik denk dat dat komt doordat het tussen "" staat, hij geeft dus de gehele java code mee als criteria.

Verwijderd

<sql:param value="<%=taal.getTaal()%>"/>

Verwijderd

Topicstarter
hartstikke bedankt, nu werkt het.

Verwijderd

Verwijderd schreef op dinsdag 07 februari 2006 @ 12:07:
code:
1
2
3
4
5
6
7
        <sql:query var="menu" scope="session" sql="
            SELECT *
            FROM MENU
            WHERE TAAL = ?
            ORDER BY VOLGORDE ASC">
            <sql:param ><jsp:getProperty name="taal" property="taal" /></sql:param>            
        </sql:query>

[/code]

hoe zou ik dit wel voor elkaar kunnen krijgen?
bedankt voor de moeite alvast
gewoon aan de body van die param tag meegeven...

<sql:param value="<%= out.println(whatever) %>" />

zal denk'k niet compileren want ...(zie comment van platvoet)
en tags nesten kan enkel via de body, niet in het value attribuut een andere tag stoppen...

[ Voor 15% gewijzigd door Verwijderd op 07-02-2006 14:24 . Reden: platvoet had blijkbaar al een hint gegeven, dus haal ik m'n comment weer weg :) ]


Verwijderd

Topicstarter
<sql:param value="<%= out.println(whatever) %>" /> werkt perfect

maar jou oplossing is veel netter
stom van me om alles in 1 tag te zetten

danku danku

[ Voor 32% gewijzigd door Verwijderd op 07-02-2006 14:39 ]


  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 03-04 10:15
en nu over je opzet ?

waarom wil je in godsnaam SQL code in een jsp pagina plaatsen?

"Live as if you were to die tomorrow. Learn as if you were to live forever"


Verwijderd

Topicstarter
helaas weet ik geen betere mannier, als jij me die kan vertellen wordt ik nog vrolijker

  • flowerp
  • Registratie: September 2003
  • Laatst online: 04-02 02:01
Verwijderd schreef op dinsdag 07 februari 2006 @ 17:47:
helaas weet ik geen betere mannier, als jij me die kan vertellen wordt ik nog vrolijker
SQL moet je nooit op pagina's zelf zetten. Die SQL tags zijn alleen bedoeld voor proto-typing. Er stond laatst nog een comment van iemand op the server side die in de designers groep zat voor de JSTL en die zei ook dat het eigenlijk ranzig was.

SQL queries horen in je business logic thuis. Die voeren berekeningen uit en zetten data in een ruwe vorm klaar. De JSP pagina geeft alleen die data in een mooi formaat weer. Type eens in een google de woorden MVC "model 2" java jsf etc in een lees je een beetje in in wat MVC is.

Overigens:
code:
1
<sql:param value="<%= out.println(whatever) %>" />


Dit is niet echt goed. In tags gebruik je het beste EL:
code:
1
<sql:param value="${taal.taal}" />


Als je dus een bean gebruikt met als id (naam) taal die een method getTaal() heeft.

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


Verwijderd

Topicstarter
flowerp schreef op dinsdag 07 februari 2006 @ 23:22:
[...]


SQL moet je nooit op pagina's zelf zetten. Die SQL tags zijn alleen bedoeld voor proto-typing. Er stond laatst nog een comment van iemand op the server side die in de designers groep zat voor de JSTL en die zei ook dat het eigenlijk ranzig was.

SQL queries horen in je business logic thuis. Die voeren berekeningen uit en zetten data in een ruwe vorm klaar. De JSP pagina geeft alleen die data in een mooi formaat weer. Type eens in een google de woorden MVC "model 2" java jsf etc in een lees je een beetje in in wat MVC is.
die mannier ziet er inderdaad veel beter uit, en bied ook meer opties.
helaas kan ik nergens een voorbeeld bean vinden :?
heb jij daar nog een link voor?

[ Voor 7% gewijzigd door Verwijderd op 08-02-2006 17:21 ]

Pagina: 1