Zum Inhalt springen

maddin

Mitglieder
  • Gesamte Inhalte

    832
  • Benutzer seit

  • Letzter Besuch

Beiträge von maddin

  1. Hi,

    ich bin bei meiner Arbeit mit dem GWT auf ein weiteres Problem gestossen. Ich würde gerne ein externes js-File einbinden. Dies kann ich laut Dokumentation mit <script src="js-file"/> in der gwt.xml tun. Schreibe ich folgenden Code in das js-file


    alert("Hallo");
    [/PHP]

    bekomme ich beim Aufruf meiner Seite, wie erwartet "Hallo" ausgegeben. Definiere ich allerdings eine Funktion in diesem js-file, also

    [PHP]
    function test() {
    alert("Hallo");
    }

    und versuche nun diese Datei via JSNI aufzurufen, also durch Aufruf der folgenden Methode


    public static native void test() /*-{
    test();
    }-*/;
    [/PHP]

    bekomme ich eine unbehandelte Ausnahme.

    Daher die Frage: wie binde ich eine externe js-Datei so ein, dass ich darin definierte Funktionen auch aufrufen kann?

  2. Hallo,

    ich habe gerade ein großes Problem. Ich habe entwickelt derzeit eine neue Webseite für meinen privaten Auftritt. Ich habe dafür drei verschiedene Themes erstellt (andere Farben, Bilder, ...).

    Für die drei Themes habe ich drei verschiedene css-Dateien. (zebra.css, pigeon.css, hummingbird.css). Die jeweils gewünschte Datei binden ich entsprechend über das <link>-Tag ein. Die entsprechende Seite sieht dann entsprechend so aus:

    
    <html>
    
    	<head>
    
    		<meta name="gwt:property" content="locale=de_DE">
    
    		<script language='javascript' src='gwt.site.nocache.js'></script>
    
    
    <!-- Diese Zeile muss ich derzeit noch manuell ändern -->
    
    
    		<link rel="stylesheet" type="text/css" href="css/pigeon.css" />
    
    
    
    	</head>
    
    	<body>
    
    		<iframe src="javascript:''" id="__gwt_historyFrame" style="width:0;height:0;border:0"></iframe>
    
    	</body>
    
    </html>
    
    

    Einige Sachen sind noch für das GWT (Cross Compiler von Java zu Javascript) dabei. Die entsprechend makierte Zeile muss ich derzeit noch per Hand editieren, jeweils welchen Theme ich gerade nutzen möchte.

    Nun zum Problem: Ich möchte die Zeile - also die eingebundene css-Datei - nicht mehr per Hand editieren, sondern diese automatisch via Javascript ändern. Ist diese Möglich?

    Alternativ würde mir auf eine Variante helfen, mit der ich definierte CSS-Klassen ändern kann. Also z.B. von der CSS-Klasse '.gwt-Button' die Hintergrundfarbe ändern.

    Ach ja, ich entwerfe die Webseite mit dem GWT. Möglich Lösungen suche ich also in Javascript oder alternativ auch als GWT-Code.

  3. Hi,

    ich habe ein - hoffentlich kleines Problem - mit einer JSF Seite.

    Ich habe mir dafür ein eigenes Tag definiert. Dazu habe ich die folgende Klasse geschrieben

    
    public class Rating extends TagSupport {
    
    
    	private float rating = 0.0f;
    
    	private int max = 5;
    
    	private String full = null;
    
    	private String half = null;
    
    	private String none = null;
    
    
    
    	@Override
    
    	public int doEndTag() throws JspException {
    
    		try {
    
    			JspWriter out = pageContext.getOut();
    
    			int n = 0;
    
    			for (int i = 0; i < (int) rating; i++ ) {
    
    				out.write("<img src=\"" + full + "\" />");
    
    				n++ ;
    
    			}
    
    			if ((rating - (int) rating) >= 0.5) {
    
    				out.write("<img src=\"" + half + "\" />");
    
    				n++ ;
    
    			}
    
    			while ( ++n <= max) {
    
    				out.write("<img src=\"" + none + "\" />");
    
    			}
    
    
    		} catch (Exception e) {}
    
    		return EVAL_PAGE;
    
    	}
    
    
    	// Getter und Setter
    
    }
    
    
    Dazu die passende TLD
    
    <?xml version="1.0" encoding="UTF-8"?>
    
    <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> 
    
      <tlib-version>1.0</tlib-version>
    
      <short-name>jsp4</short-name>
    
      <uri>/intech/rating</uri>
    
      <tag>
    
      	<name>rating</name>
    
      	<tag-class>intech.Rating</tag-class>
    
      	<body-content>JSP</body-content>
    
      	<attribute>
    
      		<name>rating</name>
    
      		<required>true</required>
    
      		<rtexprvalue>true</rtexprvalue>
    
      	</attribute>
    
      	<attribute>
    
      		<name>max</name>
    
      		<required>false</required>
    
      		<rtexprvalue>true</rtexprvalue>
    
      	</attribute>
    
      	<attribute>
    
      		<name>full</name>
    
      		<required>true</required>
    
      		<rtexprvalue>true</rtexprvalue>
    
      	</attribute>
    
      	<attribute>
    
      		<name>half</name>
    
      		<required>true</required>
    
      		<rtexprvalue>true</rtexprvalue>
    
      	</attribute>
    
      	<attribute>
    
      		<name>none</name>
    
      		<required>true</required>
    
      		<rtexprvalue>true</rtexprvalue>
    
      	</attribute>
    
      </tag>
    
    </taglib> 
    
    
    Und die TLD in die web.xml eingebunden
    
      <jsp-config>
    
      	<taglib>
    
      		<taglib-uri>/intech/rating</taglib-uri>
    
      		<taglib-location>/WEB-INF/tlds/rating.tld</taglib-location>
    
      	</taglib>
    
      </jsp-config>
    
    
    Das Tag soll eine Wertung in Form von vollen, halben und leeren Sterne anzeigen. Also: z.B. max = 5, rating = 3,5, full, half, none entsprechnd die URI zu den Bildern der halben, vollen, leeren Sterne würde drei volle Sterne, einen halben und einen leeren anzeigen. Das Tag nutze ich nun in einer JSF dataTable.
    
    		<h:dataTable value="#{search.searchResults}" var="list" rowClasses="odd,even" styleClass="dataTable">
    
    			<!-- ... -->
    
    			<h:column>
    
    				<f:facet name="header">
    
    					<h:outputText value="Bewertung" />
    
    				</f:facet>
    
    				<i:rating rating="#{list.rating}" full="../img/fullstar.png" half="../img/halfstar.png" none="../img/nostar.png" />
    
    			</h:column>
    
    		</h:dataTable>
    
    
    

    Als wert für das Attribut rating möchte ich den Wert in meiner Datenquelle nutzen. Ich habe dies ähnlich versucht, wie z.B. beim outputText, also #{list.rating}. Allerdings wird dieser Ausdruck nicht ausgewertet und ich bekomme einen java.lang.NumberFormatException: For input string: "#{list.rating}"

    Die naheliegende Frage ist nun, was mache ich falsch?

    Wenn ich anstatt #{list.rating} z.B. 3 einsetzte zeigt das Tag das gewünschte Verhalten.

  4. Hi,

    ich nutze eigentlich für die Entwicklung von Servlets ganz gerne die Eclipse WTP. Wenn ich die vorgefertigten Packete von Eclipse Europe für Java EE Entwickler nehme, habe ich auch alle Funktionen, die ich möchte.

    Wenn ich aber nun versuche, ausgehend von der reinen Platform das WTP über den Update Manager zu installieren, habe ich ein Problem. Mir fehlen zum Einen die Perspektiven, die ich von der vorgefertigen Version her kenne. Diese kann ich zur Not aber noch selber erstellen. Zum Anderen fehlen mir die Vorlagen für Neue Projekte. Bei der vorgefertigten Version habe ich hier u.a. die Auswahlmöglichkeit ein neues WebProjekt oder ein neues Servlet zu erstellen. Die Frage nun, was habe ich bei der Installation falsch gemacht? Ich habe eigentlich alle Pakete von der WTP Update Site installiert.

  5. Hi ich habe ein kleines Problem beim Herstellen einer Verbindung zu meiner MySQL-Datenbank. Der DB-Server läuft auf Debian 4.04, die Anwendung eigentlich auf Windows Vista. Dabei habe ich auch keine Probleme - also kann ich mir eigentlich sicher sein, dass ich die richtigen Dinge tue.

    Wenn ich die Anwendung allerdings auch auf Debian ausführen möchte, wird eine Exception geworfen.

    
    java.sql.SQLException: Error during query: Unexpected Exception: java.io.CharConversionException message given: null
    
    
    Nested Stack Trace:
    
    
    
    ** BEGIN NESTED EXCEPTION ** 
    
    
    java.io.CharConversionException
    
    
    STACKTRACE:
    
    
    java.io.CharConversionException
    
       at gnu.gcj.convert.Input_iconv.read(libgcj.so.70)
    
       at java.lang.String.init(libgcj.so.70)
    
       at java.lang.String.<init>(libgcj.so.70)
    
       at com.mysql.jdbc.SingleByteCharsetConverter.<init>(SingleByteCharsetConverter.java:153)
    
       at com.mysql.jdbc.SingleByteCharsetConverter.initCharset(SingleByteCharsetConverter.java:108)
    
       at com.mysql.jdbc.SingleByteCharsetConverter.getInstance(SingleByteCharsetConverter.java:86)
    
       at com.mysql.jdbc.Connection.getCharsetConverter(Connection.java:3478)
    
       at com.mysql.jdbc.StringUtils.getBytes(StringUtils.java:615)
    
       at com.mysql.jdbc.Buffer.writeStringNoNull(Buffer.java:655)
    
       at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1686)
    
       at com.mysql.jdbc.Connection.execSQL(Connection.java:3250)
    
       at com.mysql.jdbc.Connection.configureClientCharacterSet(Connection.java:2514)
    
       at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:4112)
    
       at com.mysql.jdbc.Connection.createNewIO(Connection.java:2762)
    
       at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
    
       at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
    
       at java.sql.DriverManager.getConnection(libgcj.so.70)
    
       at java.sql.DriverManager.getConnection(libgcj.so.70)
    
       at film.FilmDb.getConnection(FilmDb.java:468)
    
       at test.Program.<init>(Program.java:19)
    
       at test.Program.main(Program.java:26)
    
    
    
    ** END NESTED EXCEPTION **
    
    
    
       at com.mysql.jdbc.Connection.execSQL(Connection.java:3303)
    
       at com.mysql.jdbc.Connection.configureClientCharacterSet(Connection.java:2514)
    
       at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:4112)
    
       at com.mysql.jdbc.Connection.createNewIO(Connection.java:2762)
    
       at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
    
       at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
    
       at java.sql.DriverManager.getConnection(libgcj.so.70)
    
       at java.sql.DriverManager.getConnection(libgcj.so.70)
    
       at film.FilmDb.getConnection(FilmDb.java:468)
    
       at test.Program.<init>(Program.java:19)
    
       at test.Program.main(Program.java:26)
    
    

    Bis zur Methode FilmDb.getConnection, die im Stacktrace zu finden ist, handelt es sich um meinen Code. In der Methode erstellen ich den ConnectionString und versuche meine Verbindung zu öffnen. Hier scheint es irgendwo zu Konvertierungsproblemen zu kommen. Weiß jemand, wie ich die beheben kann?

  6. HKEY_CLASSES_ROOT ist kein eigener Zweig, sondern fasst nur einige Teile aus HKLM und HKCU zusammen.

    Der Eintrag HKCR/*.pdfneu zu löschen müsste das Problem lösen. Allerdings wird der Mitarbeiter die Datei vielleicht noch einmal öffnen wollen. Ich würde vielleicht weiterhin Adobe Reader zu öffnen einstellen und nur ein anderes Icon zuweisen, um den Unterschied erkennen zu können.

  7. VB.NET wurde zwar nicht zusammen mit dem .NET Framework und C# entwickelt, aber danach. Da sie technisch nicht auf Visual Basic basiert ist VB.NET also durchaus eine komplette Neuentwicklung (ja - C# auch, aber die Aussage das C# eine Aussage bildet ist falsch). VB.NET 8.0 ist übrigens die einzige verfügbare Sprache die alle Features der IL-Definition unterstüzt.

    Für mich gab es mit VB einen Vorgänger von VB.NET und damit ist es eben keine Neuentwicklung sondern einer Weiterentwicklung. Dass es eine Menge neuer Dinge gibt, ist mir durchaus bewusst, dass die gemeinsamen Schnittmenge klein sein mag auch. Aber ich denke, dass ist Definitionssache.

  8. Hi, sorry - aber das ist nicht richtig, oder zumindet fürchterlich unpräzise. Das Kürzel .NET bei den Sprachen deutet nicht unbedingt auf eine Unterstützung von .NET, sondern darauf hin das die jeweiligen Compiler CLI-Code kompilieren anstelle von nativem Code der dann wiederrum von der .NET Runtime ausgeführt werden kann - und deshalb auch Fremdassemblys wie z.B. die des .NET Frameworks nutzbar macht. Wenn du das als .NET Unterstützung bezeichnest können wir uns einigen.

    Gut, daraus können wir uns einigen.

    Die "guten, alten Zeiger" in C sollten übrigens in C# bitte-bitte NIEMALS-NIE verwendet werden - weswegen ich sie auch nicht als fortgeschrittene sondern eher als rückschritliche Programmierung bezeichnen würde. Die "guten alten Zeiger" sind für ca. 99% aller Buffer-Overflow Security-Leaks in modernen Applikationen verantwortlich und lediglich für COM oder DCOM Komponenten noch enthalten. Du wirst von uns keine Zertifizierung für eine .NET Applikation bekommen die einen Pointer verwendet weil hierdurch das .NET Security-System komplett ausgehebelt wird.

    Sag niemals nie. Durch die Verwendung der "guten, alten Zeiger" kann ich große Performance-Vorteile erreichen und ich muss eben nicht unbedingt auf C/ C++ ausweichen. Gerade bei der Verarbeitung großer Datenmengen /Array's also doch sinnvoll.

  9. Ich glaubs ja nicht. Da erzählt mir der dinnar, der Typ, der mir schon vor fast 10 Jahren vor meiner Ausbildung zu jedem Vorstellungsgespräch nachgelaufen ist, der CdwaA wäre wieder da. Und ich dachte, der Coffeeshop ähh Coffeehouse wäre geschlossen.

    Aber irgendwie war hier früher mehr los. Oder? Irgendwie schade.

    Also:

    *bierhol*

    *fassaufmach*

    *rundeschmeiß*

    Lange lebe König Bimei :bimei (ich hoffe, ich hab da jetzt keine Namen verwechselt)

  10. Weder über STRG+ENTF noch über Rechtsklick auf die Taskleiste. Auch über eine Eingabe bei Ausführen öffnet ihn nicht.

    DU meinst STRG+ALT+ENTF oder ? (ansonsten gibs da noch STRG+SHIFT+ESC)

    Ansonsten schau mal in deiner Registry nach. Unter HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe kann in der Zeichenfolge Debugger ein anderes Programm eingetragen werden, dass anstatt des Task Managers gestartet wird. Sollte die Zeichenfolge bestehen, einfach löschen. Natürlich wie immer auf eigene Gefahr.

  11. Du kennst keine Post-Karte. Das sind die Dinger, die man meistens im Urlaub an seine Freunde zu Hause verschickt, ...

    Nein, ernsthaft: Nach dem Einschalten des PC's durchläuft dieser den sogenannten Power-On-Self-Test (POST) und überprüft dabei die grundlegenden Komponenten des PC. Dabei entsteht ein bestimmter Fehlercode oder eben alle i.O., der über eine entsprechende POST-Karte ausgelesen/ angezeigt werden kann.

  12. VB.NET ist aber auf jeden Fall eine komplette Neu-Entwicklung und erzeugt prinzipiell genau den selben IL-Code wie z.B. C#.

    VB.NET ist KEINE komplette Neu-Entwicklung. Das .NET Framework ist eine komplette Neu-Entwicklung, hat aber im Grunde nicht mit irgendeiner Programmiersprache zu tun. Die Kürzel .NET bei den verschiedenen Programmiersprachen deutet lediglich darauf hin, das die Unterstützung für .NET hinzugefügt wurde. (z.B. VB.NET, C++ .NET oder C++ with CLR, Delphi.NET, ...)

    Eine Ausnahme bildet hier C#, da diese Sprache zusammen mit dem .NET Framework entwickelt wurde und dieses somit auch am Besten unterstützt. Also wenn du mit dem .NET Framework anfange möchtest, würde ich auf jeden Fall zu C# greifen.

    Außerdem bietet C# für die fortgeschrittete Programmierung auch noch einige schöne Dinge wie zum Beispiel die guten, alten Zeiger aus C++.

  13. new String(byte[]) bzw. String.getBytes() stellen den elegantesten Weg für dein Problem dar. Und wenn du damit Speicherproblem in der ME hast, wirst du auch mit allen anderen Lösungen Probleme bekommen.

    Wenn du mit new String(byte[]) Probleme hast, liegt das eher am byte-Array oder an der KVM.

  14. Ich habe das aber richtig verstanden, die Access Violation tritt nach der Zeile mit dem new auf und nicht in dieser Zeile. Sonst würde ich den Konstruktor noch einmal genauer unter die Lupe nehmen.

    Ansonsten tippe ich einfach einmal, dass du dich irgendwo in deinem Code mit einen Zeiger verschossen hast, oder Feldgrenzen überschreitest.

    Allgemein: Überprüfen, Überprüfen, Überprüfen !!! Die zweile nach dem new muss auf jeden Fall lauten: if (ptrInsertThreshold == 0) // Fehlerbehandlung.

  15. Bei den Spiegel-Display muss man schon aufpassen, wo man sich hinsetzt. Das einzige bei dem dieses Problem nicht so extrem ist, sind imho die neuen Sony Vaio Modell. Da sind die Display entspiegelt und strahlen so hell, dass die Spiegelungen überstrahlt werden. Sprengen aber auch den von dir angegebenen Preisrahmen.

    Zum Unterschied Core Duo zu Core Duo 2:

    Der Core Duo sind im Grunde 2 Core Solo. Der Core Solo wiederrum ist der alte Pentium 4 M mit neuem Namen. Es gibt einige kleine Unterschiede, aber die sind nicht signifikant. => Core Solo = Pentium 4 = 1/2 Core Duo (ungefähr).

    Der Core Duo 2 basiert auf einer komplett neuen Architektur. Diese Architektur ist der neuen eigentlich immer vorzuziehen. Außer man achtet auf den Preis. Die neue Architektur bietet einfach mehr Leistung für weniger Energie. Also auch gerade im Notebook zu empfehlen.

    Ich würde bei deiner Suche auf jeden Fall auch einmal bei Dell vorbei schauen. Am Besten im Internet nachschauen und telefonisch bestellen. Am Hörer, kann man da auch gut und gerne noch ein paar Euro sparen!

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...