01: /*
02: * $Id: IteratorTag.java 471756 2006-11-06 15:01:43Z husted $
03: *
04: * Licensed to the Apache Software Foundation (ASF) under one
05: * or more contributor license agreements. See the NOTICE file
06: * distributed with this work for additional information
07: * regarding copyright ownership. The ASF licenses this file
08: * to you under the Apache License, Version 2.0 (the
09: * "License"); you may not use this file except in compliance
10: * with the License. You may obtain a copy of the License at
11: *
12: * http://www.apache.org/licenses/LICENSE-2.0
13: *
14: * Unless required by applicable law or agreed to in writing,
15: * software distributed under the License is distributed on an
16: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17: * KIND, either express or implied. See the License for the
18: * specific language governing permissions and limitations
19: * under the License.
20: */
21: package org.apache.struts2.views.jsp;
22:
23: import javax.servlet.http.HttpServletRequest;
24: import javax.servlet.http.HttpServletResponse;
25: import javax.servlet.jsp.JspException;
26:
27: import org.apache.struts2.components.Component;
28: import org.apache.struts2.components.IteratorComponent;
29:
30: import com.opensymphony.xwork2.util.ValueStack;
31:
32: /**
33: * @see IteratorComponent
34: */
35: public class IteratorTag extends ComponentTagSupport {
36:
37: private static final long serialVersionUID = -1827978135193581901L;
38:
39: protected String statusAttr;
40: protected String value;
41:
42: public Component getBean(ValueStack stack, HttpServletRequest req,
43: HttpServletResponse res) {
44: return new IteratorComponent(stack);
45: }
46:
47: protected void populateParams() {
48: super .populateParams();
49:
50: IteratorComponent tag = (IteratorComponent) getComponent();
51: tag.setStatus(statusAttr);
52: tag.setValue(value);
53: }
54:
55: public void setStatus(String status) {
56: this .statusAttr = status;
57: }
58:
59: public void setValue(String value) {
60: this .value = value;
61: }
62:
63: public int doEndTag() throws JspException {
64: component = null;
65: return EVAL_PAGE;
66: }
67:
68: public int doAfterBody() throws JspException {
69: boolean again = component.end(pageContext.getOut(), getBody());
70:
71: if (again) {
72: return EVAL_BODY_AGAIN;
73: } else {
74: if (bodyContent != null) {
75: try {
76: bodyContent.writeOut(bodyContent
77: .getEnclosingWriter());
78: } catch (Exception e) {
79: throw new JspException(e.getMessage());
80: }
81: }
82: return SKIP_BODY;
83: }
84: }
85:
86: }
|