Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Projektowanie warstwy serwera Znaczniki jsp. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu.

Podobne prezentacje


Prezentacja na temat: "Projektowanie warstwy serwera Znaczniki jsp. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu."— Zapis prezentacji:

1 Projektowanie warstwy serwera Znaczniki jsp

2 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 2 Klasa definiująca (I) javax.servlet.jsp.tagext.Tag TagSupport BodyTagSupport

3 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 3 Klasa definiująca (II) javax.servlet.jsp.tagext.TagSupport org.springframework.web.servlet.tags.RequestContextAwareTag org.springframework.web.servlet.tags.HtmlEscapingAwareTag org.springframework.web.servlet.tags.form.AbstractFormTag org.springframework.web.servlet.tags.form. AbstractDataBoundFormElementTag org.springframework.web.servlet.tags.form.AbstractHtmlElementTag org.springframework.web.servlet.tags.form. AbstractHtmlInputElementTag org.springframework.web.servlet.tags.form.InputTag

4 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 4 Znaczniki - metody int doEndTag() int doStartTag() int doAfterBody() BodyContent getBodyContent()

5 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 5 Najprostszy przykład public class PrzykladTag extends TagSupport { public int doStartTag() { JspWriter out = pageContext.getOut(); out.print(Przykladowy tag"); return(SKIP_BODY); }

6 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 6 Zastosowanie znacznika...

7 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 7 Tagi z atrybutami public void setAttribute1(String value1) {.... }

8 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 8 ActionTag (I) public class ActionTag extends TagSupport { private String label; private String option; private String icon; public int doEndTag() throws JspException { return EVAL_PAGE; }....

9 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 9 ActionTag (II) public int doStartTag() throws JspException { JspWriter out = pageContext.getOut(); out.print("<a class=\"option\); out.print("onclick=\"return submitOption('"); out.print(option); out.print("');\"><img alt=\"\" src=\""); out.print(icon); out.print("\">");...

10 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 10 ActionTag (III).... out.print(label); out.println(" "); return SKIP_BODY; }

11 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 11 Tag z ciałem (I) BodyContent: JspWriter getEnclosingWriter() Reader getReader() String getString()

12 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 12 Tag z ciałem (II) EVAL_BODY_INCLUDE - ponowne przetwarzanie treści tagu SKIP_BODY – zakończenie przetwarzania

13 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 13 Tag z ciałem - przykład (I) public class FiltrTag extends BodyTagSupport { public int doAfterBody() { BodyContent body = getBodyContent(); String filteredBody = ServletUtilities.filter(body.getString()); JspWriter out = body.getEnclosingWriter(); out.print(filteredBody); return(SKIP_BODY); }

14 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 14 Button (I) public class ButtonTag extends BodyTagSupport { private String name; private String value; private String type; private Boolean disabled;

15 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 15 Button (II) public int doEndTag() throws JspException { JspWriter out = pageContext.getOut(); out.print(" "); return EVAL_PAGE; }

16 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 16 Button (II) public int doStartTag() throws JspException { JspWriter out = pageContext.getOut(); out.print("<button"); if (StringUtils.hasText(value)) { out.print(" value=\""); out.print(value); out.print('"'); }

17 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 17 Button (III) if (Boolean.TRUE.equals(disabled)) out.print(" disabled=\"disabled\""); out.print(">"); return EVAL_BODY_INCLUDE; }

18 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 18 Tagi zagnieżdżone (I) public class DrugiTag extends BodyTagSupport { public int doStartTag() throws JspTagException { PierwszyTag parent = (PierwszyTag) findAncestorWithClass(this, PierwszyTag.class);....

19 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 19 Tagi zagnieżdżone (II) if (parent == null) { throw new JspTagException("nesting error"); } else {... } return(EVAL_BODY_TAG); }

20 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 20 InputTag (I) public class MyInputTag extends AbstractHtmlInputElementTag { public static final String SIZE_ATTRIBUTE = "size"; public static final String MAXLENGTH_ATTRIBUTE = "maxlength"; public static final String ALT_ATTRIBUTE = "alt"; public static final String ONSELECT_ATTRIBUTE = "onselect"; public static final String READONLY_ATTRIBUTE = "readonly"; public static final String AUTOCOMPLETE_ATTRIBUTE = "autocomplete"; private String size; private String maxlength; private String alt; private String onselect; private String autocomplete;

21 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 21 InputTag (II) protected int writeTagContent(TagWriter tagWriter) throws JspException { tagWriter.startTag("input"); writeDefaultAttributes(tagWriter); tagWriter.writeAttribute("type", getType()); writeOptionalAttribute(tagWriter, "onkeypress", "return filterKey('[\\\\d\\\\s\\\\,\\\\-]', event)"); writeValue(tagWriter); tagWriter.closeTag(); return EVAL_PAGE; }

22 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 22 InputTag (III) protected void writeValue(TagWriter tagWriter) throws JspException { tagWriter.writeAttribute("value", getDisplayString(getBoundValue(), getPropertyEditor())); } protected String getType() { return "text"; }

23 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 23 InputTag (disabled) (I) protected boolean isDisabled() throws JspException { String dis = (String) evaluate(DISABLED_ATTRIBUTE, getDisabled()); Boolean canEdit = (Boolean) pageContext.getSession().getAttribute(canEdit); if ( canEdit != null && canEdit == false) return true;.....

24 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 24 InputTag (disabled) (II) if (dis == null ) { Set allowedFields = (Set ) request.getAttribute(allowed); if (allowedFields != null) { if (!allowedFields.contains(getNestedPath()+ getPath())) return true; } return "true".equals(dis); }

25 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 25 Tag - konfiguracja (web.xml) http://www.my.pl/mytags /WEB-INF/mytags.tld

26 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 26 Tag - konfiguracja (I) mytags.tld mytags 2.0 mytags http://www.my.pl/mytags

27 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 27 Tag - konfiguracja (II) przyklad dmcs.tags.PrzykladTag Tag przykładowy JSP atrybut1 true

28 Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 28 Tag - konfiguracja (III) Icon option action tags.ActionTag empty label false true


Pobierz ppt "Projektowanie warstwy serwera Znaczniki jsp. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu."

Podobne prezentacje


Reklamy Google