1 / 28

Znaczniki jsp

Znaczniki jsp. Klasa definiująca (I). javax.servlet.jsp.tagext.Tag TagSupport BodyTagSupport. Klasa definiująca (II). javax.servlet.jsp.tagext.TagSupport org.springframework.web.servlet.tags.RequestContextAwareTag org.springframework.web.servlet.tags.HtmlEscapingAwareTag

uri
Download Presentation

Znaczniki jsp

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Znaczniki jsp

  2. Klasa definiująca (I) • javax.servlet.jsp.tagext.Tag • TagSupport • BodyTagSupport 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 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

  4. Znaczniki - metody int doEndTag() int doStartTag() int doAfterBody() BodyContent getBodyContent() 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); } } Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

  6. Zastosowanie znacznika <%@ taglib uri="http://www.my.pl/mytags" prefix="mytags" %> ... <BODY> <H1><mytags:przyklad/></H1> Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

  7. Tagi z atrybutami <prefix:name attribute1="value1" attribute2="value2" ... /> public void setAttribute1(String value1) { .... } 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; } .... 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("\">"); ... Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

  10. ActionTag (III) .... out.print(label); out.println("</a>"); return SKIP_BODY; } } 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() 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 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); } } 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; 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("</button>"); return EVAL_PAGE; } 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('"'); } 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; } } 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); .... 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); } } 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; 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; } 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"; } } 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; ..... Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

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

  25. Tag - konfiguracja (web.xml) <jsp-config> <taglib> <taglib-uri>http://www.my.pl/mytags</taglib-uri> <taglib-location>/WEB-INF/mytags.tld</taglib-location> </taglib> </jsp-config> Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

  26. Tag - konfiguracja (I) mytags.tld <display-name>mytags</display-name> <tlib-version>2.0</tlib-version> <short-name>mytags</short-name> <uri>http://www.my.pl/mytags</uri> Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

  27. Tag - konfiguracja (II) <tag> <name>przyklad</name> <tagclass>dmcs.tags.PrzykladTag</tagclass> <info>Tag przykładowy</info> <bodycontent> JSP </bodycontent> <attribute> <name>atrybut1</name> <required>true</required> </attribute> </tag> Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

  28. Tag - konfiguracja (III) <tag> <description>Icon option</description> <name>action</name> <tag-class>tags.ActionTag</tag-class> <body-content>empty</body-content> <attribute> <name>label</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

More Related