webForumDet fria alternativet

Använda som böna?

6 svar · 546 visningar · startad av AG

AGMedlem sedan mars 20001 266 inlägg
#1

Skulle vilja använda följande replace-funktion på min jsp sida, importera eller nåt.
class MyStrings {
public static String replace (String target, String from, String to) {
// target is the original string
// from is the string to be replaced
// to is the string which will used to replace
int start = target.indexOf (from);
if (start==-1) return target;
int lf = from.length();
char [] targetChars = target.toCharArray();
StringBuffer buffer = new StringBuffer();
int copyFrom=0;
while (start != -1) {
buffer.append (targetChars, copyFrom, start-copyFrom);
buffer.append (to);
copyFrom=start+lf;
start = target.indexOf (from, copyFrom);
}
buffer.append (targetChars, copyFrom, targetChars.length-copyFrom);
return buffer.toString();
}
}
Hade funderingar på att göra nåt med bönor, med är en som sagt osäker.
Själva variabelsättnigen skulle nog vara nåt i stil med:
String variabel = "allt som finns i världen";
String out = MyStrings.replace(variabel, "världen", "europa");

Behöer alltså hjälp med hur jag skall inkludera detta.

Andreas

sgtpepperMedlem sedan apr. 20007 588 inlägg
#2

Visst kan du använda klassen som en böna om du vill.

Gör om klassen så att det är publik åtkomst till den (public class MyStrings), lägg den i ett paket (t.ex package util;) och inkludera den i din jsp-sida ungefär så här:

<jsp:useBean id="stringutil" class="util.MyStrings" />

<%
	String target=request.getParameter("target");
	String from=request.getParameter("from");
	String to=request.getParameter("to");
%>
<html><body>

<form action="replace.jsp" method="post">
	
	Target: <input type="text" name="target"><br>
	Search: <input type="text" name="from"><br>
	Replace: <input type="text" name="to"><br>
	<input type="submit">
</form>
<b>
<%
	if (target != null && from != null && to != null)
		out.println(stringutil.replace(target, from, to));
%>
</b>
</html></body>

------------------
"Med ett schysst järnrör slår man hela världen med häpnad" - Socker-Conny

[Redigerat av sgtpepper den 22 feb 2001]

AGMedlem sedan mars 20001 266 inlägg
#3

Tackar, ska testa det nu.

Förresten vad är skillnaden mellan Beans och JEBeans, eller EBeans, vad de nu heter?

Andreas

sgtpepperMedlem sedan apr. 20007 588 inlägg
#4

Enterprise Java Beans (EJB) heter de ;).

EJB är ett sätt för att distribuera programkomponenter över ett nätverk. Extremt förenklat så kan man säga att EJB är en motsvarighet till JavaBönor i ett distribuerat system. Du driftsätter en EJB på en server och sedan kan använda dom från klienter i nätverket till skillnad från vanliga JavaBönor som körs på klienten.

Det var alltså en grov förenkling, så läs mer på sidorna nedan :)

JavaSoft

JavaWorld

------------------
"Med ett schysst järnrör slår man hela världen med häpnad" - Socker-Conny

[Redigerat av sgtpepper den 22 feb 2001]

AGMedlem sedan mars 20001 266 inlägg
#5

OK då har jag iaf lite koll på vad det är :)

Testade din kod, fungerar men undrar vad detta error betyder, återgärd.
/wml.jsp:28: Incompatible type for =. Explicit cast needed to convert java.lang.Object to java.lang.String.
testa = result.elementAt(1);
^
1 error

Andreas

spangoMedlem sedan juni 20008 205 inlägg
#6

Du måste casta ett Object till String. Inte för att det fanns några behov för det i sgtpeppers exempel, men ändå ;)

testa = (String) resultat.elementAt(1);

------------------
Tror du på ett liv efter födseln?

AGMedlem sedan mars 20001 266 inlägg
#7

Nej men i min vidareuteckling behövdes det :)

Tack iaf för hjälpen.

Andreas

129 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)