org.apache.struts2.views.jsp
public class: StrutsBodyTagSupport [javadoc |
source]
java.lang.Object
javax.servlet.jsp.tagext.TagSupport
javax.servlet.jsp.tagext.BodyTagSupport
org.apache.struts2.views.jsp.StrutsBodyTagSupport
All Implemented Interfaces:
BodyTag, IterationTag, Serializable
Direct Known Subclasses:
ActionMessageTag, SubsetIteratorTag, BeanTag, ParamTag, TreeNodeTag, SortIteratorTag, IncludeTag, ResetTag, ElseIfTag, TextareaTag, TabbedPanelTag, AbstractListTag, WebTableTag, CheckboxTag, FieldErrorTag, SetTag, DateTag, MergeIteratorTag, TextFieldTag, UpDownSelectTag, FormTag, FileTag, CheckboxListTag, HiddenTag, ElseTag, OptGroupTag, TextTag, DebugTag, AbstractUITag, HeadTag, DivTag, PropertyTag, LabelTag, AutocompleterTag, DateTimePickerTag, OptionTransferSelectTag, ActionTag, IteratorTag, URLTag, DoubleSelectTag, ActionErrorTag, ComponentTag, PasswordTag, AbstractRequiredListTag, TokenTag, PushTag, AbstractClosingTag, IfTag, TreeTag, RadioTag, InputTransferSelectTag, IteratorGeneratorTag, SelectTag, AbstractDoubleListTag, SubmitTag, ComponentTagSupport, I18nTag, AbstractRemoteCallUITag, AppendIteratorTag, ComboBoxTag
Contains common functonalities for Struts JSP Tags.
| Methods from javax.servlet.jsp.tagext.TagSupport: |
|---|
|
doAfterBody, doEndTag, doStartTag, findAncestorWithClass, getId, getParent, getValue, getValues, release, removeValue, setId, setPageContext, setParent, setValue |
| Method from org.apache.struts2.views.jsp.StrutsBodyTagSupport Detail: |
protected boolean altSyntax() {
return ContextUtil.isUseAltSyntax(getStack().getContext());
}
|
protected String findString(String expr) {
return (String) findValue(expr, String.class);
}
|
protected Object findValue(String expr) {
if (altSyntax()) {
// does the expression start with %{ and end with }? if so, just cut it off!
if (expr.startsWith("%{") && expr.endsWith("}")) {
expr = expr.substring(2, expr.length() - 1);
}
}
return getStack().findValue(expr);
}
|
protected Object findValue(String expr,
Class toType) {
if (altSyntax() && toType == String.class) {
return translateVariables(expr, getStack());
} else {
if (altSyntax()) {
// does the expression start with %{ and end with }? if so, just cut it off!
if (expr.startsWith("%{") && expr.endsWith("}")) {
expr = expr.substring(2, expr.length() - 1);
}
}
return getStack().findValue(expr, toType);
}
}
|
protected String getBody() {
if (bodyContent == null) {
return "";
} else {
return bodyContent.getString().trim();
}
}
|
protected ValueStack getStack() {
return TagUtils.getStack(pageContext);
}
|
public void setId(String string) {
super.setId(string);
}
|
protected String toString(Throwable t) {
FastByteArrayOutputStream bout = new FastByteArrayOutputStream();
PrintWriter wrt = new PrintWriter(bout);
t.printStackTrace(wrt);
wrt.close();
return bout.toString();
}
|
public static String translateVariables(String expression,
ValueStack stack) {
while (true) {
int x = expression.indexOf("%{");
int y = expression.indexOf("}", x);
if ((x != -1) && (y != -1)) {
String var = expression.substring(x + 2, y);
Object o = stack.findValue(var, String.class);
if (o != null) {
expression = expression.substring(0, x) + o + expression.substring(y + 1);
} else {
// the variable doesn't exist, so don't display anything
expression = expression.substring(0, x) + expression.substring(y + 1);
}
} else {
break;
}
}
return expression;
}
|