ex05: Tagu bibliotēka

Vingrinājuma koda paraugi:

ex05.zip

Vingrinājumā dots HTML fails (7kyu.html), kurš kopā ar atbilstošu CSS un JavaScript attēlo 'izpeldošas' terminu definīcijas. (Sk. demonstrāciju, mēģinot ar peli uzbraukt terminiem lapas labajā pusē.) Šādu HTML ir grūti veidot ar roku, jo ir jāievieto atbilstošās terminu definīcijas, tāpēc tiek piedāvāts izmantot JSP tagu bibliotēku. Vingrinājumā jau ir demonstrācija šādai tagu bibliotēkai - ir vienīgi jāpanāk, lai tā ievietotu pareizās terminu definīcijas, kuras dotas failā "termini.xml" - šis fails ir sakodēts atbilstoši Javas parametru/properties failu sintaksei - varat tā ielasīšanai izmantot java.util.Properties metodes (vai arī parsēt ar SAX). Ja nepieciešams, varat šo XML failu pārveidot kādā Jūsu programmai ērtāk izmantojamā veidā. Vienīgais būtiskais šajā vingrinājumā - iemācīties konfigurēt un izmantot pašu veidotas (custom) JSP tagu bibliotēkas.

Uzdevums

Papildināt Javas tagu bibliotēkas apstrādes klasi src/dict/GlossaryRef.java tā, lai

  • kvadrātiekavu vietā tiktu drukātas hipersaites
    (<a href='#'> un </a> birkas) (uz # - tie ir linki bez URL adreses; uz tiem klikšķinot, pārlūkprogramma neko nedarīs),
  • HTML rezultāts būtu līdzīgs 7kyu.html failā redzamajam.

Ja kāds termins parādās tekstā pirmo reizi, tegu apstrādes failā src/dict/GlossaryRef.java jāizvada aptuveni šāda SPAN konstrukcija: (piemērs) <span ID="Tp1" class="hint"> <b>SHIKO-DACHI</b> - sāniskā stāja, pēdas izvērstas 45° leņķī, ķermeņa svars 50%:50%.<br /><b>...</b> <span class="flw">Klikšķiniet linku, lai atvērtu glosāriju.</span> </span>

  • Vispārīgajā gadījumā "Tp1" vietā raksta "TpNN", kur NN ir atbilstošā termina unikāls numurs.
  • 'SHIKO-DACHI' vietā raksta terminu, kurš ir property failā termini.xml entry@key atribūts
  • "sāniskā [...] 50%:50%" vietā raksta atbilstošās atslēgas vērtību
  • .

Jāņem vērā, ka viens termins var JSP failā atkārtoties vairākas reizes, bet "span" birku tam vajag ievietot tikai vienreiz. Var izmantot java.util.HashSet vai līdzīgu datu struktūru, lai "atcerētos", kuriem terminiem jau ir ierakstīts <span>.

Iesūtīt ar ar WinZip arhivētu ex05 direktoriju, kurā ir šādi studenta programmēti faili:

  • ex05/src/dict/GlossaryRef.java - tagu bibliotēkas apstrādes fails;
  • ex05/web/7kyu.jsp - fails, kas pievieno ContentType, lai nodrošinātu latviešu teksta pareizu attēlojumu;

Citus aplikācijas failus - web.xml, dict.tld, 7kyu.jsp mainīt nav nepieciešams. Ja tomēr vēlaties tos mainīt, noteikti vajag brīdināt Daigu pirms šī darbu iesūtīšanas.

JSP Tagu bibliotēkas: projekta konfigurācija, izvietošana XDoclet lietošanas gadījumā

XDoclet un citus tālākminētos tagu bibliotēku projekta kompilēšanas un izvietošanas līdzekļus izmantot nav obligāti. Tie domāti, lai ilustrētu Ant un XDoclet iespējas. "Minimālai" JSP aplikācijai ar tagu bibliotēku un vienu JSP failu ir sekojoša direktoriju struktūra izstrādes vidē: (direktorijas vārdam priekšā ir plusiņš; visi faili un apakšdirektorijas atrodas zem vecāku direktorijas ar tieši divu tukšumu atkāpi):

+ex05 (jebkādi nosaukta projekta saknes direktorija)
  +src
    +dict (jebkādi nosaukts pakotnes ceļš no kodabāzes "src")
      GlossaryRef.java
  +web
    +dict (jebkādi nosaukta apakšdirektorija JSP failiem)
      7kyu.jsp
	  (citi faili - bildes, CSS, kurus lieto JSP lapa)
    +WEB-INF
      dict.tld
      web.xml
  build.xml

Ja ir vēlēšanās, var ģenerēt "dict.tld" un "web.xml" failus ar XDoclet palīdzību, ierakstot "GlossaryRef.java" atbilstošas XDoclet'am saprotamas anotācijas.

Pārdomu Jautājums

(Atbilde uz šo jautājumu nav jāiesūta). Kādu metodi Jūs izmantotu izpeldošo vārdnīcas definīciju ģenerēšanai, ja servera pusē darbojas PHP tehnoloģija, kā tas ir piemērā www.kimekarate.lv?


Lapa mainta 2005-12-13 08:10:51