📄 mappingtag.java
字号:
/*
* Copyright 2006-2007 original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.ecside.tag;
import java.util.Map;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
import org.apache.commons.lang.StringUtils;
import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager;
import org.ecside.util.ExceptionUtils;
/**
* @author Wei Zijun
*
*/
public class MappingTag extends TagSupport {
private static final long serialVersionUID = 1L;
protected String tagAttributes=null;
private Object mappingItem;
private Object mappingDefaultKey;
private Object mappingDefaultValue;
private Object value;
public int doStartTag() throws JspException {
try {
Object propertyValue = getValue();
if (propertyValue != null) {
propertyValue = ExpressionEvaluatorManager.evaluate("result", propertyValue.toString(), Object.class, this, pageContext);
}
if (mappingItem!=null ){
Object mappingMap=pageContext.findAttribute((String)mappingItem);
Object outValue=null;
if (mappingMap instanceof Map){
Map itemsMap=(Map)mappingMap;
outValue=itemsMap.get(propertyValue);
if (outValue==null && mappingDefaultKey!=null){
outValue=itemsMap.get(mappingDefaultKey);
}
}
if (outValue==null){
outValue=mappingDefaultValue;
}
propertyValue=outValue;
}
JspWriter w = pageContext.getOut();
if (propertyValue == null || (propertyValue != null && propertyValue instanceof String && StringUtils.isBlank((String)propertyValue))) {
w.write("");
}else{
w.write((String)propertyValue);
}
} catch (Exception e) {
throw new JspException("MappingTag.doStartTag() Problem: " + ExceptionUtils.formatStackTrace(e));
}
return SKIP_BODY;
}
public void release() {
mappingItem = null;
mappingDefaultKey = null;
mappingDefaultValue=null;
tagAttributes=null;
super.release();
}
public String getTagAttributes() {
return tagAttributes;
}
public void setTagAttributes(String tagAttributes) {
this.tagAttributes = tagAttributes;
}
public Object getMappingDefaultKey() {
return mappingDefaultKey;
}
public void setMappingDefaultKey(Object mappingDefaultKey) {
this.mappingDefaultKey = mappingDefaultKey;
}
public Object getMappingDefaultValue() {
return mappingDefaultValue;
}
public void setMappingDefaultValue(Object mappingDefaultValue) {
this.mappingDefaultValue = mappingDefaultValue;
}
public Object getMappingItem() {
return mappingItem;
}
public void setMappingItem(Object mappingItem) {
this.mappingItem = mappingItem;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -