webForumDet fria alternativet

använda böna ifrån metod i jsp

Java

6 svar · 277 visningar · startad av Mc Fetto

Medlem sedan nov. 20022 355 inlägg
Frågan#1

har följande:

<%!
public void getNews()
{ 
  bla bla...
}
%>

här i vill jag utnyttja en böna som jag deklarerat:

<jsp:useBean id="NewsBean" scope="session" class="mind.NewsBean" />

Men detta fungerar inte, compilatorn säger att den inte hittar bönan. Gör jag på vanligt sätt:

<% bla bla %>

Vad är skilnaden?

Det jag igentligen vill göra är att i html-koden kunna använda jsp-anrop till metoder som ligger utanför html-koden (för att göra det hela lättläst). Detta sätt är kanske helt fel, isf vore tips verkligen på sin plats! ;)

Medlem sedan feb. 2004230 inlägg
#2

Är själv i startgroparna med Servlets & JSP, men jag tror du ska söka efter "taglibs" för att åstakomma det du söker efter...

Men ska jag vara ärlig är jag långt ifrån säker....

Medlem sedan nov. 20022 355 inlägg
#3

swede skrev:

Är själv i startgroparna med Servlets & JSP, men jag tror du ska söka efter "taglibs" för att åstakomma det du söker efter...

Men ska jag vara ärlig är jag långt ifrån säker....

Hm, det verkar lite bökigt för att göra det lilla jag vill, men finns det inget annat så får man kanske titta närmre på taglibs! tack!

Medlem sedan juni 20042 inlägg
#4

För att komma åt din böna från en scriptlet kan du göra så här

<%
mind.NewsBean newsBean = (mind.NewsBean)session.getAttribute("NewsBean");
%>

Sedan anropar du önskad metod med

<%
newsBean.metodnamn();
%>

Om du vill komma åt bönan från din metod så kan du alltid skicka in session objektet till metoden, kanske finns fler lösningar?

<%!
public void getNews(HttpSession session) { 
   mind.NewsBean newsBean = (mind.NewsBean)session.getAttribute("NewsBean");
   bla bla...
}
%>

<% getNews(session); %>
Medlem sedan nov. 20022 355 inlägg
#5

Tackar, och välkommen till wF :D
Det jag sedan vill göra i getNews är skriva ut data till sidan, men det verkar inte gå att göra med out.println()
Så mitt tankesätt är kanske helt fel, att ifrån taggarna kalla på metoder som skriver ut data....

Medlem sedan juni 20042 inlägg
#6

Det man kan göra är väl att lägga in det som skall skrivas ut i en sträng och returnera denna samt skriva ut den.

<%!
public String getNews(HttpSession session) { 
   mind.NewsBean newsBean = (mind.NewsBean)session.getAttribute("NewsBean");
   StringBuffer sb = new StringBuffer();
   sb.append("bla bla bla");
   sb.append("bla bla bla");
   ...
   return sb.toString();
}
%>

<% out.print(getNews(session)); %>

Annars är nog, precis som swede säger, Tags att föredra då det blir smidigare och snyggare. Kan posta ett exempel senare...

Medlem sedan nov. 20022 355 inlägg
#7

Hm, det skumma är att jag kan inte använda

mind.NewsBean newsBean = (mind.NewsBean)session.getAttribute("NewsBean");

i metoden, har även provat att skicka med newsBean i metoden men jag kommer inte åt denna i metoden. Dax att skaffa ett referensverk...

263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)