Transcript Web-framework
Web-framework
• Felsorolás – Struts – Turbine – Tapestry – Spring – SwingWeb – Cocoon – WebWork – Maverick – Anvil – RIFE – SOFIA – Caramba – Stripes – OpenXava – Barracuda
Framework ök
Amivel foglalkozunk • Maverick • ActionController • Spring-MVC
Maverick
Maverick
• Struts kistestvére – Sokkal egyszerűbb • Mi a cél?
– Bonyolult a servlet-programozás egyszerűsítés – Nagyméretű servletek helyett kis méretű modulok – Komplex vezérlési folyamat egyszerű leírása – Könnyű átláthatóság • Megoldás – Standard servlet használata – Folyamatleírás xml-ben maverick.xml
Szerkezete • MVC alapokon • Modellel itt nem foglalkozunk
– V (view) és C (controller) a kérdés
• Központban
– maverick.xml nevű Maverick-leíró – speciális web.xml
Példa maverick.xml-re
vezérlő logikai neve
Működés folyamata
runQuery
vezérlő (controller) a vezérlést
com.bar.foo.Query
osztály
perform
metódusa Beindul a C elem, használja az M-elemeket – A perform kimenete „success” vagy „error” string Ha „
success
” a perform kimenete, akkor a
queryResult.jsp
vezérlést – A bean-eket már a controller előzetesen elkészítette Ha „
error
” a kimenet, akkor a
queryFailed.jsp
kapja a kapja a vezérlést
Hogyan kap a controller vezérlést?
• A leírás a web.xml-ben található
Nyelvi váltás
request-header Accept Language eleme alapján
Paraméterek be- és kifelé
bemeneti paraméter
Referenciák
id="loginRequired" ref="loginRequired"
Controller programozás
• Java osztályok – Servlet • alaposztály –
org.infohazard.maverick.Command
• öröklődéssel maverick-alaposztályból újat is lehet – Controller • perform metódus szükséges!
• különféle típusok – – –
ThrowAway FormBeanUser ThrowAwayFormBeanUser :
itt makeFormBean
:
itt makeFormBean
Példa Controller-re
public abstract class ProtectedController extends ThrowAwayFormBeanUser { private HttpSession session; protected String perform() throws Exception { // ellenorzes ControllerContext ctx = this.getCtx(); session = ctx.getRequest().getSession(); HibaTar bean = new HibaTar(); if (session.getAttribute("logged_in") == null) { bean.put("default", "Kérjük jelentkezzen be!"); ctx.setModel(bean); return "login"; } return protectedPerform(); } /** * * @return */
protected abstract String protectedPerform();
/** * @return */ public HttpSession getSession() { return session; } }