strutsbeanwrapper.java

来自「struts 2 核心包 的源码 有错误是难免的」· Java 代码 · 共 72 行

JAVA
72
字号
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   StrutsBeanWrapper.java

package org.apache.struts2.views.freemarker;

import freemarker.core.CollectionAndSequence;
import freemarker.ext.beans.BeansWrapper;
import freemarker.ext.beans.MapModel;
import freemarker.ext.util.ModelFactory;
import freemarker.template.*;
import java.util.Map;
import java.util.Set;

public class StrutsBeanWrapper extends BeansWrapper
{
	private static final class FriendlyMapModel extends MapModel
		implements TemplateHashModelEx
	{

		static final ModelFactory FACTORY = new ModelFactory() {

			public TemplateModel create(Object object, ObjectWrapper wrapper)
			{
				return new FriendlyMapModel((Map)object, (BeansWrapper)wrapper);
			}

		};

		public boolean isEmpty()
		{
			return ((Map)object).isEmpty();
		}

		protected Set keySet()
		{
			return ((Map)object).keySet();
		}

		public TemplateCollectionModel values()
		{
			return new CollectionAndSequence(new SimpleSequence(((Map)object).values(), wrapper));
		}


		public FriendlyMapModel(Map map, BeansWrapper wrapper)
		{
			super(map, wrapper);
		}
	}


	private boolean altMapWrapper;

	StrutsBeanWrapper(boolean altMapWrapper)
	{
		this.altMapWrapper = altMapWrapper;
	}

	public TemplateModel wrap(Object object)
		throws TemplateModelException
	{
		if (object instanceof TemplateBooleanModel)
			return super.wrap(object);
		if (altMapWrapper && (object instanceof Map))
			return getInstance(object, FriendlyMapModel.FACTORY);
		else
			return super.wrap(object);
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?