9. September 2010  
  Suche:
 
  Basics
  Code-Galerie
  Forum
  FAQ
  Tipps & Tricks
  Literatur
  Knowledge Base
  Workshops
  JSP-Hosting
  JSP-Engines
  Jobbörse
  Links
  JSP-Sites
  Newsletter
  JSP-Test
  Impressum
  Username:
  
  Passwort:
  
  

  Jetzt registrieren
  Warum registrieren?

  Valid HTML 4.01!
  Valid CSS!

TagBody manipulieren

von matbtt,  10.02.2002 22:28:04  (1 vote) Kommentare (1)  [vote]
JSP-Tags kapseln ähnlich wie JavaBeans die Logik und erleichtern die Lesbarkeit von JSPs. Der folgende Tag kann zur Darstellung von ResultSets, die leere Einträge, die in der JSP als "null" erscheinen , genutzt werden. Enthält der TagBody den String "null" wird er durch ein "-" ersetzt. Da String-Ersetzungen immer nach diesem Schema ablaufen, wäre eine Implementierung einer abstrakten StringTag-Klasse sinnvoll. Subklassen implementieren dann nur die modify()-Methode.
TagSource:
package myclass.ReplaceTag;
import java.io.IOException;
import javax.servlet.jsp.tagext.BodyTagSupport;
import javax.servlet.jsp.JspException;

public class ReplaceTag extends BodyTagSupport {

public int doAfterBody() throws JspException {
  /** check, ob der tag einen inhalt hat */
  if(bodyContent == null) {
  return SKIP_BODY;
  }
 
  /** ok, wir holen den inhalt und... */
  String str = getBodyContent().toString().trim();
  /** delegieren das handling an modify() */
  str = modify(str);
  try {
  /** holen des jspwriter */ 
  getPreviousOut().print(str);
  }
  catch(IOException ioe) {
  throw new JspException(ioe.toString());
  }
  return SKIP_BODY;
}

private String modify(String str) {
  return((str.equals("null")) ? "-" : str);
}
}

TLDSource:
Wie ein TagLibraryDescriptor (nix anderes als ein XML-File) aufgebaut wird könnt ihr hier nachlesen: http://www.jsp-develop.de/knowledgebase/view/57/. Es müssen folgende Änderungen vorgenommen werden.

...
<shortname>string</shortname>
...
<tag>
<name>replaceNull</name>
<tagclass>myclass.ReplaceTag</tagclass>
<bodycontent>JSP</bodycontent>
</tag>


JSPSource:

<%@ taglib uri="string.tld" prefix="string" %>
...
<string:replaceNull>null</string:replaceNull>





<< zurück


Hinweis: Auf dieser Seite liegen Links zu anderen Seiten im Internet. Für alle diese Links gilt: Wir betonen ausdrücklich, daß wir keinerlei Einfluß auf die Gestaltung und die Inhalte der gelinkten Seiten haben. Deshalb distanzieren wir uns hiermit ausdrücklich von allen Inhalten aller gelinkten Seiten auf dieser Homepage und machen uns ihre Inhalte nicht zueigen. Diese Erklärung gilt für alle auf unserer Homepage angebrachten Links

Redaktion/Betreiber von JSP-Develop übernehmen keinerlei Gewährleistung und Verantwortung für die Richtig- und/oder Vollständigkeit von den auf den Webseiten JSP-Develop veröffentlichten Source Codes. Die Verantwortung der Verwendung/Anwendung sowie etwaige Modifikation der hier veröffentlichten Sourcen obliegt einzig dem Benutzer der Webseite, welche die veröffentlichten Sourcen in einer Applikation/Anwendung einsetzt. Durch das Kopieren und/oder Benutzen der Sourcen in einer Applikation/Anwendung bzw. etwaigen Abschriften wird dieser Rechtshinweis anerkannt.

Java, JSP, JavaServer Pages, J2EE, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and in other countries. IBM, WebSphere are trademarks or registered trademarks of International Business Machines Corporation. Other trademarks and registered trademarks are the property of their respective owners.