# beanshell scope problem...



## ruutaiokwu (21. Feb 2011)

hallo zusammen,

habe hier ->Scriptlets in facelets using BeanShell - Tal Liron - net.java.dev.facelets.users - MarkMail ein .jar gefunden, welches die beanshell als jsf-tag zur verfügung stellt. theoretisch sollte man dann wie eine art skriptlets (analog jsp) in jsf-seiten haben.

das ist meiner meinung nach vor allem vorteilhaft, wenn man die kombination jsf 2.0 & "facelets" verwendet, andernfalls (jsf + jsp) hat man ja bereits "normale" skriptlets...

nun habe ich das problem, dass offenbar der scope verloren geht:

[XML]<bsh:interpret eval='
	/* ----------------------------------------- START SCRIPTLET HERE ----------------------------------------- */

        int test = 0;

	/* ----------------------------------------- END SCRIPTLET HERE ------------------------------------------- */
    ' />


<HTMLTag1>blablabla</HTMLTag1>
<HTMLTag2>blablabla</HTMLTag2>
<HTMLTag3>blablabla</HTMLTag3>
<HTMLTag4>blablabla</HTMLTag4>

<bsh:interpret eval='
	/* ----------------------------------------- START SCRIPTLET HERE ----------------------------------------- */

        System.out.println(test);

	/* ----------------------------------------- END SCRIPTLET HERE ------------------------------------------- */
    ' />
	[/XML]


...sowas scheint leider nicht zu gehen! wenn man die beispiele bei der beanshell-doku ansieht, ist es als nicht-jsf / norm. java-anwendung folgendermassen:


```
Object result = i.eval( "long time = 42; new Date( time )" ); // Date
Object result = i.eval("2*2");  // Integer
```

glaube auch dort kann man vom inhalt der .eval-funktion von zeile 2 keinen bezug mehr auf den inhalt von zeile 1 nahmen, so wie es aussieht...

oder hat jemand fundiertere kenntnisse über die beanshell als ich, und kann mich eines bessern belehren?


grüsse,
jan


----------



## ruutaiokwu (23. Feb 2011)

hallo zusammen,

meine frage bezieht sich eigentlich nicht auf jsf's, sondern auf die beanshell. kennst sich niemand genauer damit aus?

wie verhält es sich mit meinem problem im nicht-jsf-kontext?


grüsse, jan


----------



## ruutaiokwu (10. Mai 2011)

hat niemand eine idee?

grüsse, jan


----------



## maki (10. Mai 2011)

*verschoben*

Komm schon, das hättest du auch selber geschafft.


----------



## ruutaiokwu (11. Mai 2011)

hallo maki,

irgendwie werde ich aus der beanshell-anleitung nicht ganz schlau... irgendwie sieht es mir aber ganz danach aus, dass sich diese beanshell in meinem kontext (facelet) anders verhält. da ich den scope nicht mehr habe, schreibe und lese ich in aktuelle session. bsp.:


```
<bsh:interpret 
					eval='

import xyz;
import .....
import .....

final FacesContext ctx = FacesContext.getCurrentInstance(); 
					final ExternalContext extCtx = ctx.getExternalContext(); 
					final HttpServletRequest request = (HttpServletRequest) extCtx.getRequest(); 
					final HttpServletResponse response = (HttpServletResponse) extCtx.getResponse(); 
					final Map requestMap = extCtx.getRequestMap(); 
					final String contentJSP = requestMap.get("contentJSP");	 
					
				
					HttpSession session = request.getSession();	
					Integer test = new Integer(1); 
					session.setAttribute("test", test);	
					Integer testNew = (Integer) session.getAttribute("test"); 
'
			/>
```


na ja, suboptimal könnte man sagen...

allerdings finde ich das beanshell jsf-tag HOCHINTERESSANT, damit kann ich in einem xhtml-facelet "quasi" java verwenden. (ähnlich wie skriptlet bei jsp...)

das projekt stammt überigens von tal liron: Scriptlets in facelets using BeanShell - Tal Liron - net.java.dev.facelets.users - MarkMail, From the Brain of Tal Liron | Contents

habe ihm geschreiben, doch leider keine antwort erhalten. offenbar ist das projekt tot...

den quelltext konnte ich trotzdem finden, und habe ihn an apache myfaces angepasst. werde den code hier im forum posten, und hoffe auf konstruktive feedbacks...

gruss, jan


----------



## maki (11. Mai 2011)

Mein Kommentar war auf das falsch Unterforum bezogen.

Warum man etwas wie die Beanshell in Facelets verwenden will ist mir schleierhaft, das Scriptlets schon mies waren ist ja wohl unumstritten, also wozu diese degeneration?



> offenbar ist das projekt tot...


R.I.P.


----------



## ruutaiokwu (11. Mai 2011)

"...das Scriptlets schon mies waren ist ja wohl unumstritten..."

na ja, ist geschmakssache, finde damit kann man gewisse probleme schnell und einfach lösen (schnell ins jsp "reinhacken") 

ja, ich weiss, mvc..... schon klar, warum gewisse entwickler von skriptlets nicht unbedingt begeistert sind.

code hier: http://www.java-forum.org/codeschnipsel-u-projekte/117939-quasi-java-facelets-verwenden.html

mal schauen ob sich was tut...

gruss, jan


----------



## maki (11. Mai 2011)

Keine Geschmackssache im eigentlichen Sinne, sondern leider durch persönliche Erfahrung bestätigter Konsens.

Für das was du willst gibt es schon eine Lösung: PHP (ohne Framework)


----------

