Expression Language in Java

sanschezzz

Mitglied
Hallo,
ich habe einen Ausdruck in Expression Language vorliegen. ${id}.
Den Wert von ${id} möchte ich nun allerdings in meinem Java Quellcode verwenden.

Java:
var id= "<%=${id}%>";

so oder so ähnlich auf jeden Fall. Meine google-Suche blieb bislang erfolglos!

Danke
 
Java:
<c:forEach var="orderItem" items="${page.orderItem}" varStatus="status">
	<c:set var="itemId" value="${order.orderItem.uniqueID}"/>
</c:forEach>

so hole ich mir den Wert und speicher ihn eben in ${itemId}

Nun möchte ich allerdings mit dem Wert weiter arbeiten und zwar in Java. Ist dies nicht möglich?
 
Nein aber du kannst doch auf die selbe Weise in Java den Wert holen.
Java:
for (OrderItem item : orderItems)
  int itemId = item.getUniqueID();
 
Das wäre leider sehr aufwendig, da ich zahlreiche JSP Abfragen vorher schon habe und diese dann alle in Java umsätzen müsste.
Habe nur gehofft, das ich einfach die Expression Language irgendwie in/an Java übergeben kann.
 
Noctatius, weißt du überhaupt um in JSP eingebetteten Java-Code usw. Bescheid?

deine Antworten klingen teils so als wenn du das grundsätzlich nicht kennst/ ablehnst, obwohl sie auch genau den Umständen dabei entsprechen könnten,
ich hab schon lange keine JSP mehr gesehen mit den Variablenübergaben usw. dort,

wäre auf jeden Fall auch etwas was man in Tutorials grundsätzlich nachschauen sollte
 
Ja moment in JSP eingebetter Java Code ist etwas anderes als von Java aus darauf zugreifen.

... möchte ich nun allerdings in meinem Java Quellcode verwenden...
Zu mindestens heißt das für mich eher von einer anderen Class aus auf die Expression Language zugreifen und das geht definitiv nicht.

Innerhalb von JSP in Java Codeblöcken (stimmt die habe ich direkt außen vorgelassen, weil es für mich anders klang) geht es.
 
Zuletzt bearbeitet:
*verschoben*
Passt hier besser...

Es gibt meherere EL für JSPs, musst schon genau werden, in JSF zB. kann man auf den EL Resolver zugreifen von Java aus(gab erst letztens einen Post dazu hier), ob das sinnvoll ist ist eine andere Frage.
 
Doch, sagte ich auch bereits, wäre aber nicht so sinnvoll, sagte ich auch bereits.
Von dir fehlen noch konkrete Informationen.
 
OK. Sorry. ich werde euch einfach mal meinen Quellcode posten.

Java:
...

<c:forEach var="orderItem" items="${pagorder.orderItem}" varStatus="status">
	<c:set var="itemId" value="${orderItem.orderItemIdentifier.uniqueID}"/>
</c:forEach>	

<%	 
        String newPathToImage = ${itemId};
	String oldPathToImage = "";
	String mainDir = "c:\\USERDATA\\";

  	Cookie[] cookies = request.getCookies();

	for ( int i = 0; i < cookies.length; i++ )
    {
      	String cookieName = cookies[i].getName();
      
      	if(cookieName.equals("pathToImage"))
      	{
			oldPathToImage = cookies[i].getValue();
    	}
 	}

	File fil = new File(mainDir+oldPathToImage);
	fil.renameTo(new File(mainDir+newPathToImage));
%>

Der Fehler liegt jetzt in Zeile 8. Wie kann ich Ihne beheben?

Danke 🙂
 
Vermute mal dass du die JSTL verwendest...
Wenn du c:set verwendest und kein Scope angibst, wird per Default das Page Scope verwendet, kannst es dort wieder rausholen.

Ist aber wie gesagt ganz mieser Stil (wenn man da überhaupt so nennen kann), schliesslich ist die JSTL dazu da, Scriplets zu vermeiden, wenn du wieder beides machst(JSTL + Scriplets), wird es dadurch noch umständlicher.
 

Zurück
Oben