Avatar billede kkaen Nybegynder
23. marts 2010 - 14:49 Der er 5 kommentarer og
1 løsning

Hvordan laver man taglib?

Jeg har en del jsp-sider, hvori jeg har skrevet en del java-kode. Jeg var godt klar over, at man skal opdele design og implementering for sig, men da jeg ikke var helt klar over, hvordan dette teknisk gøres, så undlod jeg. Men nu vil jeg så gerne kunne gøre det.

Jeg har forsøgt at følge diverse vejledninger online, men jeg kan ikke få det til at virke. Jeg fik det til at virke for mange år siden, men har glemt det i mellemtiden. Men det var vist ret simpelt.

Det jeg søger er altså kort fortalt en vejledning i, hvordan man flytter sin java-kode ud af jsp-siderne, og man så kalder denne kode gennem tags inde på jsp-siden efterfølgende.
Avatar billede arne_v Ekspert
23. marts 2010 - 14:54 #1
Der er jo en del eksempler paa nettet.

Naermeste maa vaere:

http://www.eksperten.dk/guide/743

sektionen "4. custom taglib"
Avatar billede arne_v Ekspert
23. marts 2010 - 14:56 #2
Avatar billede arne_v Ekspert
23. marts 2010 - 15:00 #3
Et andet lille eksempel fra lageret:

package test;

import java.io.IOException;

import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;

public class ReverseTag extends BodyTagSupport {
    public int doAfterBody() {
        try {
            BodyContent bc = getBodyContent();
            StringBuilder sb = new StringBuilder(bc.getString());
            sb.reverse();
            JspWriter out = bc.getEnclosingWriter();
            out.print(sb.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }
        return SKIP_BODY;
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" 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 web-jsptaglibrary_2_0.xsd">
    <tlib-version>1.0</tlib-version>
    <short-name>reverse</short-name>
    <uri>/WEB-INF/tlds/reverse.tld</uri>
    <tag>
        <name>strrev</name>
        <tagclass>test.ReverseTag</tagclass>
    </tag>
</taglib>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="/WEB-INF/tlds/reverse.tld" prefix="reverse" %>
<html>
<head>
<title>Tag test</title>
</head>
<body>
<reverse:strrev>Test</reverse:strrev>
</body>
</html>
Avatar billede kkaen Nybegynder
23. marts 2010 - 15:09 #4
Ja, det minder jo meget om det, jeg fandt i min søgen efter løsningen på nettet ;-)
Jeg prøver lige at implementere et eksempel...formentlig først i morgen.
Avatar billede arne_v Ekspert
24. marts 2010 - 01:38 #5
Virkende eksempler har vel en tendens til at lige hinanden lidt.

:-)
Avatar billede arne_v Ekspert
26. april 2010 - 03:13 #6
Tid at få afsluttet her?

Og et svar fra mig.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester