亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? templateact.java

?? JAVA做的CMS源碼
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package com.jeecms.core.action;

import static com.jeecms.core.Constants.ENCODING;
import static com.jeecms.core.Constants.FILE_SPT;
import static com.jeecms.core.Constants.SPT;

import java.io.File;
import java.io.FileFilter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.FileUtils;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.jeecms.core.JeeCoreAction;
import com.jeecms.core.util.FileWrap;
import com.jeecms.core.util.UploadRule;
import com.ponyjava.common.util.ComUtils;
import com.ponyjava.common.util.Zipper;
import com.ponyjava.common.util.Zipper.FileEntry;

@SuppressWarnings("serial")
@Scope("prototype")
@Controller("core.templateAct")
public class TemplateAct extends JeeCoreAction {
	private static final Logger log = LoggerFactory
			.getLogger(TemplateAct.class);

	public String resMain() {
		return MAIN;
	}

	public String left() {
		String path = getWeb().getTplRootReal(contextPvd.getAppRoot())
				.toString().replace(SPT, FILE_SPT);
		File tplFile = new File(path);
		treeRoot = new FileWrap(tplFile, path, new FileFilter() {
			public boolean accept(File f) {
				if (f.getName().startsWith(".") || f.getName().startsWith("$")) {
					return false;
				} else {
					return true;
				}
			}
		});
		return LEFT;
	}

	public String resLeft() {
		String resPath = contextPvd.getAppRealPath(getWeb().getResRootBuf()
				.toString());
		treeRoot = new FileWrap(new File(resPath), resPath, new FileFilter() {
			public boolean accept(File f) {
				if (f.isDirectory() || f.getName().endsWith(".js")
						|| f.getName().endsWith(".css")
						|| f.getName().endsWith(".html")
						|| f.getName().endsWith(".txt")) {
					return true;
				} else {
					return false;
				}
			}
		});
		return LEFT;
	}

	public String right() {
		return RIGHT;
	}

	public String list() {
		String path = contextPvd.getAppRealPath(getWeb().getTplRoot().append(
				relPath).toString());
		File dir = new File(path);
		subDir = new FileWrap(dir).getChild();
		return LIST;
	}

	public String resList() {
		String path = contextPvd.getAppRealPath(getWeb().getResRootBuf()
				.append(relPath).toString());
		File dir = new File(path);
		subDir = new FileWrap(dir).getChild();
		return LIST;
	}

	public String add() {
		// 設置上傳規則
		addUploadRule();
		return ADD;
	}

	public String resAdd() {
		return ADD;
	}

	private boolean saveFile(String path) {
		File tpl = new File(path + relPath + FILE_SPT + tplName);
		try {
			FileUtils.writeStringToFile(tpl, tplContent, ENCODING);
			return true;
		} catch (IOException e) {
			log.error("寫入模板失敗!", e);
			addActionError("寫入模板失敗!");
			return false;
		}
	}

	public String save() {
		String path = contextPvd.getAppRealPath(getWeb().getTplRoot()
				.toString());
		if (saveFile(path)) {
			removeUploadRule();
		}
		return list();
	}

	public String resSave() {
		String path = contextPvd.getAppRealPath(getWeb().getResRootBuf()
				.toString());
		saveFile(path);
		return resList();
	}

	private void editFile(String path) {
		File tpl = new File(path);
		tplName = tpl.getName();
		parentPath = relPath.substring(0, relPath.lastIndexOf(FILE_SPT));
		try {
			tplContent = FileUtils.readFileToString(tpl, ENCODING);
		} catch (IOException e) {
			log.error("讀取模板文件失敗", e);
			addActionError("讀取模板文件失敗!");
		}
	}

	public String edit() {
		String path = contextPvd.getAppRealPath(getWeb().getTplRoot().append(
				relPath).toString());
		editFile(path);
		// 設置上傳規則
		addUploadRule();
		return EDIT;
	}

	public String resEdit() {
		String path = contextPvd.getAppRealPath(getWeb().getResRootBuf()
				.append(relPath).toString());
		editFile(path);
		return EDIT;
	}

	private boolean updateFile(String path) {
		File tpl = new File(path);
		File newFile = tpl;
		if (!tpl.getName().equals(tplName)) {
			newFile = new File(tpl.getParent() + FILE_SPT + tplName);
			tpl.renameTo(newFile);
		}
		try {
			FileUtils.writeStringToFile(newFile, tplContent, ENCODING);
			jsonRoot.put("success", true);
			jsonRoot.put("msg", "保存成功");
			return true;
		} catch (IOException e) {
			log.error("寫文件失敗", e);
			jsonRoot.put("success", false);
			jsonRoot.put("msg", "寫文件失敗!");
			return false;
		}
	}

	public String update() {
		String path = contextPvd.getAppRealPath(getWeb().getTplRoot().append(
				relPath).toString());
		if (updateFile(path)) {
			removeUploadRule();
		}
		return SUCCESS;
	}

	public String resUpdate() {
		String path = contextPvd.getAppRealPath(getWeb().getResRootBuf()
				.append(relPath).toString());
		updateFile(path);
		return SUCCESS;
	}

	private void renameFile(String path) {
		File tpl = new File(path);
		if (!origName.equals(tplName)) {
			boolean b = tpl.renameTo(new File(tpl.getParent() + FILE_SPT
					+ tplName));
			if (!b) {
				jsonRoot.put("success", false);
			}
		}
		jsonRoot.put("success", true);
	}

	public String rename() {
		String path = contextPvd.getAppRealPath(getWeb().getTplRoot().append(
				relPath).append(SPT).append(origName).toString());
		renameFile(path);
		return SUCCESS;
	}

	public String resRename() {
		String path = contextPvd.getAppRealPath(getWeb().getResRootBuf()
				.append(relPath).append(SPT).append(origName).toString());
		renameFile(path);
		return SUCCESS;
	}

	private void deleteFile(String path) {
		File tpl = new File(path);
		if (FileUtils.deleteQuietly(tpl)) {
			addActionError("刪除成功!");
		} else {
			addActionError("刪除失敗!");
		}
	}

	public String delete() {
		String path = contextPvd.getAppRealPath(getWeb().getTplRoot().append(
				relPath).append(SPT).append(tplName).toString());
		deleteFile(path);
		return list();
	}

	public String resDelete() {
		String path = contextPvd.getAppRealPath(getWeb().getResRootBuf()
				.append(relPath).append(SPT).append(tplName).toString());
		deleteFile(path);
		return resList();
	}

	public String createDir() {
		String path = contextPvd.getAppRealPath(getWeb().getTplRoot().append(
				relPath).append(SPT).append(dirName).toString());
		File dir = new File(path);
		dir.mkdir();
		return list();
	}

	public String resCreateDir() {
		String path = contextPvd.getAppRealPath(getWeb().getResRootBuf()
				.append(relPath).append(SPT).append(dirName).toString());
		File dir = new File(path);
		dir.mkdir();
		return resList();
	}

	public String resUpload() {
		return "upload";
	}

	public String resUploadSubmit() {
		String path = contextPvd.getAppRealPath(getWeb().getResRootBuf()
				.append(relPath).append(SPT).toString());
		if (resFile != null) {
			try {
				for (int i = 0; i < resFile.length; i++) {
					FileUtils.copyFile(resFile[i], new File(path + FILE_SPT
							+ resFileFileName[i]));
				}
				addActionMessage("上傳成功!");
			} catch (IOException e) {
				addActionError("上傳失敗!" + e.getMessage());
			}
		}
		return resList();
	}

	public String solutionEdit() {
		// 數據庫和目錄中都有的模板套件才顯示
		// 數據庫中模板方案
		solMap = getWeb().getSolutions();
		// 模板目錄中模板方案
		dirMap = new LinkedHashMap<String, String[]>();
		String path = contextPvd.getAppRealPath(getWeb().getTplRoot()
				.toString());
		File[] tplFiles = new File(path).listFiles(ComUtils.DIR_FILE_FILTER);
		for (File f : tplFiles) {
			if (solMap.containsKey(f.getName())) {
				dirMap.put(f.getName(), f.list(ComUtils.DIR_FILE_FILTER));
			}
		}
		return "solution";
	}

	public String solutionUpdate() {
		Map<String, String> smap = getWeb().getSolutions();
		for (String key : smap.keySet()) {
			String s = solMap.get(key);
			if (s != null) {
				smap.put(key, s);
			}
		}
		addActionMessage("操作成功");
		return solutionEdit();
	}

	public String exportTpl() {
		solSet = new LinkedHashSet<String>();
		solMap = getWeb().getSolutions();
		String path = contextPvd.getAppRealPath(getWeb().getTplRoot()
				.toString());
		File[] sysDirs = new File(path).listFiles(ComUtils.DIR_FILE_FILTER);
		for (File sysDir : sysDirs) {
			if (solMap.containsKey(sysDir.getName())) {
				for (File sol : sysDir.listFiles(ComUtils.DIR_FILE_FILTER)) {
					solSet.add(sol.getName());
				}
			}
		}
		return "exportTpl";
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线不卡免费av| 99久久精品国产导航| 免费成人在线网站| 色婷婷亚洲综合| 国产一区二区三区在线观看免费 | 亚洲日本在线看| 亚洲不卡在线观看| 狠狠色狠狠色综合| 91麻豆国产精品久久| 日韩一区二区三免费高清| 久久久www免费人成精品| 一区二区三区欧美| 国产综合色产在线精品| 99久久99久久精品国产片果冻| 欧美日韩黄色影视| 久久久久久久性| 亚洲精品高清在线| 国产一区二区在线看| 91久久精品网| 久久精品视频网| 五月天一区二区三区| 国产成人午夜99999| 欧美日韩国产美女| 国产欧美视频在线观看| 亚洲超碰97人人做人人爱| 国产91在线|亚洲| 欧美日韩午夜精品| 中文字幕av不卡| 日本亚洲天堂网| 91免费观看国产| 国产偷v国产偷v亚洲高清| 日本系列欧美系列| 色综合久久天天综合网| 国产亚洲欧洲一区高清在线观看| 无码av免费一区二区三区试看| 成人精品视频一区二区三区尤物| 日韩欧美国产小视频| 亚洲成人综合网站| 一本色道久久加勒比精品| 久久久99免费| 久久99深爱久久99精品| 欧美日韩国产小视频在线观看| 国产精品高清亚洲| 韩国v欧美v日本v亚洲v| 欧美另类久久久品| 一区二区三区久久| 91丝袜高跟美女视频| 国产精品久久久一区麻豆最新章节| 久99久精品视频免费观看| 欧美挠脚心视频网站| 一区二区不卡在线播放| 99久久久久久| 中文字幕的久久| 国产精品影视在线观看| 91精品久久久久久蜜臀| 亚洲图片欧美视频| 91蜜桃在线免费视频| 中文字幕av不卡| 激情综合亚洲精品| 日韩免费看网站| 老司机午夜精品99久久| 日韩三级在线免费观看| 免费成人美女在线观看.| 欧美一区二区在线播放| 丝袜a∨在线一区二区三区不卡| 在线一区二区三区四区| 伊人婷婷欧美激情| 欧美在线视频日韩| 亚洲一二三四区不卡| 欧美在线免费观看视频| 亚洲午夜久久久久久久久久久| 在线成人免费视频| 性欧美疯狂xxxxbbbb| 777亚洲妇女| 国产精品一二三在| 亚洲精品第1页| 欧美不卡在线视频| 成人国产精品免费网站| 亚洲精品乱码久久久久久| 欧美人牲a欧美精品| 国产一区二区三区四区在线观看| 国产精品毛片高清在线完整版| 91黄色免费看| 男女男精品视频| 亚洲欧美另类图片小说| 欧美一个色资源| 国产福利一区二区三区视频| 美女视频黄 久久| 久久九九全国免费| 2024国产精品视频| 麻豆国产精品一区二区三区| 欧美一区二区三区在| 国产成人免费视频一区| 看国产成人h片视频| 成人sese在线| 久久久av毛片精品| 欧美丝袜丝nylons| 亚洲国产精品久久人人爱蜜臀| 欧美群妇大交群的观看方式| 久久99精品国产麻豆婷婷洗澡| 国产日韩欧美激情| 91麻豆国产精品久久| 日韩电影在线观看电影| 久久久久国产精品麻豆ai换脸| 不卡欧美aaaaa| 亚洲午夜电影在线观看| 日韩精品一区二区三区三区免费 | 欧美午夜精品一区二区三区| 天涯成人国产亚洲精品一区av| 日韩美女在线视频| 成人福利电影精品一区二区在线观看 | 天堂成人免费av电影一区| 日韩一区二区三区四区五区六区| 国产成人精品网址| 亚洲综合小说图片| 亚洲精品一区二区三区影院| 99久久精品99国产精品 | 久久人人爽爽爽人久久久| 波多野结衣中文字幕一区| 亚洲国产精品自拍| 久久久美女毛片| 欧美日韩一区二区在线观看| 精品写真视频在线观看| 亚洲乱码国产乱码精品精的特点 | 国产一区二区在线免费观看| 亚洲猫色日本管| 精品国产乱码久久久久久闺蜜| 91麻豆国产自产在线观看| 久久国产剧场电影| 夜夜亚洲天天久久| 日本一区二区高清| 欧美理论电影在线| bt7086福利一区国产| 美女任你摸久久 | 欧美日本国产视频| 不卡的av电影| 韩国视频一区二区| 亚洲成av人片观看| 亚洲人成网站在线| 久久免费看少妇高潮| 欧美日韩1234| 色婷婷综合久久久中文字幕| 国产精品一区一区| 日韩**一区毛片| 一区二区国产视频| 国产精品久久毛片| 久久久国产精华| 欧美电视剧在线观看完整版| 欧美色视频一区| voyeur盗摄精品| 国产原创一区二区三区| 日韩av午夜在线观看| 亚洲一二三级电影| 中文字幕日韩一区| 国产午夜亚洲精品理论片色戒| 日韩一区二区视频| 欧美疯狂做受xxxx富婆| 在线看日韩精品电影| 成人精品小蝌蚪| 国产大陆亚洲精品国产| 经典三级在线一区| 久久国产三级精品| 免费高清不卡av| 天天影视涩香欲综合网| 一区二区在线观看免费| 日本vs亚洲vs韩国一区三区二区 | 精品久久久久一区| 午夜激情一区二区| 欧美精品丝袜中出| 亚洲国产一区二区a毛片| 成人黄色免费短视频| 国产色产综合色产在线视频| 国产综合一区二区| 日韩一区二区免费电影| 日本午夜精品视频在线观看| 在线观看日韩电影| 亚洲综合图片区| 欧美日韩在线亚洲一区蜜芽| 精品一区二区三区av| 日韩免费看的电影| 在线观看国产日韩| 中文字幕视频一区二区三区久| 精品一区二区久久久| 日韩精品一区在线观看| 国产一区二区三区免费观看| 久久久久久久久久久黄色| 欧美浪妇xxxx高跟鞋交| 欧美日韩国产在线播放网站| 成人激情免费电影网址| 亚洲乱码国产乱码精品精98午夜| 亚洲色图丝袜美腿| 一区二区三区四区在线播放| 一级中文字幕一区二区| 亚洲成av人片一区二区梦乃 | 99久久精品免费| 色综合久久久久久久久| 欧美综合色免费| 538在线一区二区精品国产| 91精品国产麻豆| 久久网站最新地址|