Pages enfant
  • Workflow de migration de JSP-JSF1 vers JSF2 (dans le cadre d'une appli EC2)

1 Renommage en masse des fichiers .jsp en .xhtml

2 Écriture des template_basic.xhtml et template.xhtml

(en fonction des includes trouvés dans les jsp)

3 Remplacement en masse des "e:page" par des "ui:composition/ui:define"

  • remplacement par lot basé sur des expressions régulières (à la sed) avec emacs. Ces expressions sont fonctions du contenu des pages, donc propres à l'application et non généralisables (du moins pas facilement). Elles sont donc à adapter et données ici uniquement à titre d'exemple; on pourra utiliser pour les construires la fonction 'regexp-builder' d'emacs.
  • regexp :
    <e:page(.|\s-)*?navigation\.jsp\"%>
    
  • remplacée par :
    <ui:composition xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:t="http://myfaces.apache.org/tomahawk"
    xmlns ="http://primefaces.prime.com.tr/ui"
    template="template.xhtml">
    <ui:define name="content">
    
  • évidemment, remplacement en masse des balises fermantes correspondantes soit :
    • regexp :
      </e:page>
      
    • remplacée par :
      </ui:define>
      </ui:composition>
      
  • la première regexp m'a supprimé deux t:div ouvrant, d'où l'étape de remplacement en masse suivante :
    • regexp :
      ^\s-?</t:div>(.|\s-)?</ui:define>
      
    • remplacée par :
      </t:div>
      </ui:define>
      

4 Suppression des '<% blah… %>' restant

  • regexp :
    ^\s-?<%.?$
    
  • remplacée par : rien du tout

5 Remplacement des '<br>' par des '<br />'

6 Remplacement des 'e:' et 't:' par des 'h:' ou 'f:' ou 'p:*' ou balise xhtml

Tableau de correspondances :

Esup-commons
e:*
Tomahawk
t:*

 

JSF2 Html
h:*
JSF2 Core
f:*
Primefaces
p:*
XHTML

messages

-

 

messages

-

-

-

text

-

 

outputText

-

-

-

dataTable

-

 

dataTable

-

-

-

commandButton

-

 

commandButton

-

-

-

inputText

-

 

inputText

-

-

-

selectOneMenu

-

 

selectOneMenu

-

-

-

outputLabel

-

 

outputLabel

-

-

-

paginator

-

 

?

-

?

-

subsection

-

 

-

-

-

h1

section

-

 

-

-

-

h2

menu

-

 

-

-

menu

ul

menuItem

-

 

-

-

menuitem

li + h:commandLink

italic

-

 

-

-

-

i

bold

-

 

-

-

-

em

ul

-

 

-

-

-

ul

li

-

 

-

-

-

li

-

div

 

-

-

-

div

-

outputText

 

outputText

-

-

-

-

column

 

column

-

-

-

-

panelGroup

 

panelGroup

-

-

-

-

updateActionListener

 

-

setPropertyActionListener

-

-

-

dataList

 

-

-

dataList

-

-

graphicImage

 

-

-

graphicImage

-

-

htmlTag (ex: 'br')

 

-

-

-

* (ex: <br />)

-

panelNavigation2

 

?

-

?

-

-

popup

 

?

-

?

-

HTML generated by org-mode 6.33x in emacs 23

  • Aucune étiquette