Hallo,
ich wollte fragen ob es möglich ist eine PrintWriter Variable in ein String umzuwandeln?
Gruß Hüsi
Hallo,
ich wollte fragen ob es möglich ist eine PrintWriter Variable in ein String umzuwandeln?
Gruß Hüsi
Moien
ich wollte fragen ob es möglich ist eine PrintWriter Variable
in ein String umzuwandeln?
Ja, mit .toString().
Wenn du erklärst was du vor hast kann man dir auch eine passende Antwort geben.
cu
Ich habe diesen Code geschrieben und bekomme einen fehler das mein outp kein String ist. Reicht es das ich es mit .toString mache?
PrintWriter outp = response.getWriter();
XMLWriter writer = new XMLWriter(System.out);
writer.write(outp);
writer.close();
Der Printwriter kann etwas in einen Stream schreiben. Dem mußt Du dann dafür einen String in einer Methode übergeben, die vermutlich write() oder so heißt.
Also sowas wie
PrintWriter pw = new PrintWriter() //keine Ahnung, was der an
//Parametern kriegt
pw.write(„Hallo Welt“);
Gibt ein gutes Tutorial bezüglich Streams auf der Sun Seite, ansonsten gibt es da auch die aktuelle API in der man das nachlesen kann.
Ich habe diesen Code geschrieben und bekomme einen fehler das
mein outp kein String ist. Reicht es das ich es mit .toString
mache?
Ja das reicht. Aber ich bezweifle dass es das ist was du machen willst.
PrintWriter outp = response.getWriter();
XMLWriter writer = new XMLWriter(System.out);
writer.write(outp);
writer.close();
WAS soll denn hier überhaupt welcher Writer wohin schreiben?
Das ist hier mein ganzes Programm, hoffe ihr versteht es xD
import iset.cmsdk.core.DatabaseConnector;
import iset.cmsdk.core.TemplateLoader;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Vector;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
public class XMLSearch extends HttpServlet {
private static final long serialVersionUID = 5946965066811596464L;
private DatabaseConnector dbConnector = new DatabaseConnector();
private static final String CONTENT\_TYPE = "text/html; charset=windows-1252";
private TemplateLoader xmlTpl;
private final Logger logger = Logger.getLogger(getClass());
private String setSword = "";
private String setDefOp = "";
private String setType = "";
private String setResultcount = "";
private String setCreated = "Test";
private boolean tt = true;
public String showContent(HttpServletRequest request, PrintWriter out,
HttpServletResponse response) {
setSword = request.getParameter("sword");
setDefOp = request.getParameter("defop");
setType = request.getParameter("type");
setResultcount = request.getParameter("resultcount");
setCreated = request.getParameter("created");
xmlTpl = new TemplateLoader(request);
// In der XMLSearch.tpl zugriff & ausgabe auf Spaltennamen
xmlTpl.initTemplate("modules/xmlsearch/XMLSearch.tpl");
xmlTpl.setWriter(new StringWriter());
try {
if (tt == true) {
Vector\> result = new Vector\>();
result = dbConnector
.getResultVector("SQL Abfrage");
xmlTpl.addToContext("results", result);
// xmlTpl.addToContext("abstract", result);
xmlTpl.addToContext("resultcount", result.size());
}
// Template Setzen
xmlTpl.addToContext("sword", setSword);
xmlTpl.addToContext("defop", setDefOp);
xmlTpl.addToContext("type", setType);
xmlTpl.addToContext("created", setCreated);
// TEMPLATE FERTIG
xmlTpl.mergeTemplateContext();
return xmlTpl.getWriter().toString();
} catch (SQLException e) {
logger.debug(e.getMessage());
} finally {
dbConnector.closeDbConnection();
}
return setType;
}
// @Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT\_TYPE);
PrintWriter outp = response.getWriter();
// XMLWriter writer = new XMLWriter(System.out);
// writer.write(outp);
// writer.close();
outp.println(showContent(request, outp, response));
outp
.println("[HIER](http://localhost:8181/renknowNET/xmlsearch?sword=wind&defop=1&type=0)");
// out.println("");
outp.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}
Das ist hier mein ganzes Programm, hoffe ihr versteht es xD
Nein, tu ich nicht, was ist XMLWriter für eine Klasse und was soll die nach System.out schreiben?
// @Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT\_TYPE);
PrintWriter outp = response.getWriter();
// XMLWriter writer = new XMLWriter(System.out);
// writer.write(outp);
// writer.close();
}
Gruß
Heavy
Das ist hier mein ganzes Programm, hoffe ihr versteht es xD
Nicht so wirklich. Das ganze ist also ein Servlet. Und Du hast einen Stream aus dem Du was lesen willst, und das was da raukommt willst Du in diesen XMLWriter packen, von dem ich wie mein Vorredner nicht sehe, wo der herkommt. Desweiteren dachte ich immer, man lauscht mit ner while-Schleife oder sowas, ob etwas aus nem Stream herauskommt und packt das dann mit write() in den Stream in den man das weiterleiten will, bzw. klebt kompatilbe Streamtypen schon im Konstruktor an den anderen Stream. Beides tust Du hier nicht, wenn ich das richtig sehe. Du kannt nicht einfach die Stream übergeben, Du mußt schauen, wenn was aus dem Stream raukommt und das dann übergeben.
Also ich sag mal was ich genau haben will ^^
Nachdem ich den Stream ausgelesen habe will ich mit demwas da rauskommt in diesen XMLWriter packen wo ich es in eine Xml Datei oder es in ein Xml Format bringe, damit ich dies dann im web als xml datei (format) anzeigen kann. Ich weiss aber nicht ob es mit dem XMLWriter funktioniert!?
Deswegen die frage wie mache ich das ^^ also wie füge ich dies in mein Programm ein?
Danke schonmal für die ganzen Antworten
Nachdem ich den Stream ausgelesen habe will ich mit demwas da
rauskommt in diesen XMLWriter packen
Das ist der springende Punkt: Tust Du das irgendwo? Lauscht Du irgenwo ob was aus dem Stream rauskommt? Und wenn etwas rauskommt, ist es vermutlich etwas, was vom Typ ein String ist oder so, den kannst Du dann übergeben. Aber Du kannst nicht mit toString() aus dem Streamobjekt nen String machen und den weiterverwursten. Das wurde Dir auch schon gesagt.
Schau dir das Tutorial auf der SUN Seite zum Thema Streams oder Sockets an, da wird das erklärt.
wo ich es in eine Xml
Datei oder es in ein Xml Format bringe, damit ich dies dann im
web als xml datei (format) anzeigen kann. Ich weiss aber nicht
ob es mit dem XMLWriter funktioniert!?
Ich auch nicht. Der XMLWriter ist nämlich ein Interface. Das heißt, es ist nur festgelegt, was ein Objekt, das von XMLWriter erbt an Funktionen haben muß. Was diese Funktionen dann tun, muß selber definiert werden. Da Du uns das nicht erzählst, können wir Dir da leider nicht helfen.
Deswegen die frage wie mache ich das ^^ also wie füge ich dies
in mein Programm ein?
Lese was Streams sind, lese was Interfaces sind, schreibe uns was dein XMLWriter Interface tut.