Avatar billede hankster Nybegynder
10. december 2001 - 01:31 Der er 6 kommentarer og
1 løsning

XML Tags med java

Jeg har lavet nogle XML-tags, som er implementeret med javaklasser.. men den laver ged i det, når jeg laver tags inde i tags. Det skal siges at de indre tags er afprøvet og virker.

her er mit java eksempel:
******************************************************
  <let:form action=\"soegeresultat.jsp\" caption=\"søgning i kundekartoteket\">

        <!--- kundenavn felt --->
        <let:formfelt name=\"Kundenavn\">
          navn:     
        </let:formfelt>

        <!--- kundetlf felt --->
        <let:formfelt name=\"Kundetlf\">
          telefonnr:     
        </let:formfelt>

        <!--- submitknap --->
        <let:formsubmit value=\"søg\"/>     
  </let:form>
******************************************************

her er \"form\" klassen:
******************************************************
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.io.*;

public class LetFormTag extends BodyTagSupport {
  private String action;
  private String caption;

  public void setAction(String action) {
    this.action = action;
  }

  public void setCaption(String caption) {
    this.caption = caption;
  }

  public int doEndTag() throws JspException {
    BodyContent bc = getBodyContent();
    JspWriter out = getPreviousOut();
    try {
      out.println(\" <TABLE border= 2 bgcolor= DDDDDD align= center>  \");
      out.println(\"  <!--- Overskrift --->                          \");
      out.println(\"  <caption align= top>                            \");
      out.println(\"    <h3>\"+caption+\"</h3>                          \");
      out.println(\"  </caption>                                      \");
      out.println(\"  <tr>                                            \");
      out.println(\"    <td>                                          \");
      out.println(\"                                                  \");
      out.println(\"      <TABLE align= center cellpadding= 3>        \");
      out.println(\"      <FORM action= \"+action+\">                  \");
      out.println(\"        \"+bc+\"                                    \");
      out.println(\"      </FORM>                                    \");
      out.println(\"      </TABLE>                                    \");
      out.println(\"    </td>                          \");
      out.println(\"  </tr>                                          \");
      out.println(\" </TABLE>                                          \");
    }
    catch (IOException ex) {
      //ignore
    }
    return EVAL_PAGE;
  }


******************************************************
resultatet hvor bodycontent er indsat bliver:
com.caucho.jsp.QBodyContent@366b06,
istedet for at de indre xmltags bliver udført. Hvorfor og hvad gør jeg?
Avatar billede bearhugx Nybegynder
10. december 2001 - 01:36 #1
Har du i TLD\'en defineret at bodycontent for <let:form>-tag\'et skal være JSP (<bodycontent>JSP</bodycontent>)

/Søren
Avatar billede bearhugx Nybegynder
10. december 2001 - 01:37 #2
STOP ....

Du skal skrive bc.getString()...

Lige 2 sek.. skal lige valider....
/Søren
Avatar billede bearhugx Nybegynder
10. december 2001 - 01:40 #3
Yes...

Du skal istedet skrive
out.println(\"      <FORM action= \"+action+\">                  \");
out.println(\"        \"+bc.getString()+\"                      \");
out.println(\"      </FORM>                                    \");

/Søren
Avatar billede hankster Nybegynder
10. december 2001 - 01:45 #4
damn... jeg hader småfejl.....

jeg tror altid at det er mig som er helt ved siden af, men så viser det sig at være nogle småtterier...

vil du have fuld point for det?
Avatar billede bearhugx Nybegynder
10. december 2001 - 01:49 #5
Du giver, hvad du vil -- Men honestly vil jeg ikke kalde .toString() en svær, 60-points ting

/Søren

PS : hvis du primært arbejder med JSP-Custom tags, hvorfor opretter du så ikke dine spørgsmål i JSP-kategorien ??
-just a suggestion *S*

PPS : hvad er du igang med at lave --- bare nogle Utillity-tags, eller er det i forbindelse med \'noget større\'
Avatar billede hankster Nybegynder
10. december 2001 - 02:12 #6
det er til en skoleopgave... ikke noget fancy.

jeg skal bare vise at jeg kan bruge dem, og hvor de kan gøre gavn.

Jeg vil vise at man kan lave en form uden at skulle koncentrere sig om layout, men bare indhold, så kan den som laver tags-klasserne lave layoutet, og man kan også her centralt ændre layoutet uden at ændre i koden på siden.

har du forslag til andre ting man kan bruge dem til?... og gøre dig fortjent til alle pointene  ;o) *g*

ps. går i seng nu, men ser hvad du har svaret imorgen tidlig.
Avatar billede bearhugx Nybegynder
10. december 2001 - 15:34 #7
Hmm... Jeg er måske af en anden skole...

Jeg mener, at tags skal understøtte \"Layout på JSP-sider, og Kode i tags\" ... Jeg bryder mig ikke om at skulle rekompilere nogle tags for at ændre et layout...

At man så bruger dem til at speede en process op ved at have nogle tags, som skriver alle trivialiteter er måske fint nok-- Designmæssigt synes jeg dog ikke om ideen...

Derimod har jeg bl.a. lavet et <util:regVisit/> tag, som logger hver besøgende til siden med IP, Hostname og Tidspunkt i en fil...

Eller en samling af DB-tags (som jeg er blevet meget glad for)...



<form name=\"soegeform\" action=\"soeg-campingplads-vaelgsoegekriterier.do\">
<table width=\"100%\" border=\"0\">
<tr>
    <th width=\"25%\" class=\"flat\">Geografisk område</th>
    <th width=\"25%\" class=\"flat\">Aktiviteter</th>
    <th width=\"25%\" class=\"flat\">Faciliteter</th>
    <th width=\"25%\" class=\"flat\">Pladstyper</th>
</tr>
<tr valign=\"top\">
    <td class=\"flat\">
        <db:query id=\"qryOmraade\"> SELECT * FROM Omraade </db:query>
        <db:for_each_row in=\"qryOmraade\">
            <input type=\'checkbox\' name=\'omraade\' value=\'<db:cell col=\"OmraadeId\" />\'> <db:cell col=\"Omraadenavn\" /> </input><br>
        </db:for_each_row>
        <db:drop_query id=\"qryOmraade\" />
    </td>
    [... og så videre...]
</tr>
</table>
<form>                       


/Søren
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