PDA

View Full Version : Använda som böna?


AG
2001-02-21, 22:09
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

sgtpepper
2001-02-21, 23:12
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]

AG
2001-02-22, 15:26
Tackar, ska testa det nu.

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

Andreas

sgtpepper
2001-02-22, 19:48
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 (http://java.sun.com/products/ejb/)

JavaWorld (http://www.javaworld.com/javaworld/topicalindex/jw-ti-ejb.html)

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

[Redigerat av sgtpepper den 22 feb 2001]

AG
2001-02-22, 23:02
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

spango
2001-02-23, 11:38
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? (http://cgi.dsv.su.se/~gustaf-c/cgi-bin/lifeafterbirth.cgi)

AG
2001-02-23, 14:22
Nej men i min vidareuteckling behövdes det :)

Tack iaf för hjälpen.

Andreas