|
|||||||||||||||||||
| Source file | Conditionals | Statements | Methods | TOTAL | |||||||||||||||
| UseCachedTag.java | 0% | 0% | 0% | 0% |
|
||||||||||||||
| 1 | /* | |
| 2 | * Copyright (c) 2002-2003 by OpenSymphony | |
| 3 | * All rights reserved. | |
| 4 | */ | |
| 5 | package com.opensymphony.oscache.web.tag; | |
| 6 | ||
| 7 | import javax.servlet.jsp.JspTagException; | |
| 8 | import javax.servlet.jsp.tagext.TagSupport; | |
| 9 | ||
| 10 | /** | |
| 11 | * UseCachedTag is a tag that tells a <cache> tag to reuse the cached body.<p> | |
| 12 | * | |
| 13 | * Usage Example: | |
| 14 | * <pre><code> | |
| 15 | * <%@ taglib uri="oscache" prefix="cache" %> | |
| 16 | * <cache:cache key="mycache" scope="application"> | |
| 17 | * if (reuse cached) | |
| 18 | * <cache:usecached /> | |
| 19 | * else | |
| 20 | * some other logic | |
| 21 | * </cache:cache> | |
| 22 | * </code></pre> | |
| 23 | * | |
| 24 | * Note this is very useful with try / catch blocks | |
| 25 | * so that you can still produce old cached data if an | |
| 26 | * exception occurs, eg your database goes down.<p> | |
| 27 | * | |
| 28 | * @author <a href="mailto:mike@atlassian.com">Mike Cannon-Brookes</a> | |
| 29 | * @version $Revision: 254 $ | |
| 30 | */ | |
| 31 | public class UseCachedTag extends TagSupport { | |
| 32 | boolean use = true; | |
| 33 | ||
| 34 | /** | |
| 35 | * Set the decision to use the body content of the ancestor <cache> or not. | |
| 36 | * | |
| 37 | * @param value Whether or not to use the body content. Default is true. | |
| 38 | */ | |
| 39 | 0 | public void setUse(boolean value) { |
| 40 | 0 | this.use = value; |
| 41 | } | |
| 42 | ||
| 43 | /** | |
| 44 | * The start tag. | |
| 45 | * | |
| 46 | * @throws JspTagException The standard tag exception thrown. | |
| 47 | * @return The standard Tag return. | |
| 48 | */ | |
| 49 | 0 | public int doStartTag() throws JspTagException { |
| 50 | 0 | CacheTag cacheTag = (CacheTag) TagSupport.findAncestorWithClass(this, CacheTag.class); |
| 51 | ||
| 52 | 0 | if (cacheTag == null) { |
| 53 | 0 | throw new JspTagException("A UseCached tag must be nested within a Cache tag"); |
| 54 | } | |
| 55 | ||
| 56 | 0 | cacheTag.setUseBody(!use); |
| 57 | ||
| 58 | 0 | return SKIP_BODY; |
| 59 | } | |
| 60 | } |
|
||||||||||