⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 helper.java

📁 自定义架构仿struts+command循环调用版
💻 JAVA
字号:
package accp.help;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import accp.command.ICommand;
import accp.factory.CmdFactory;

public class Helper implements IHelper {
	private HttpServletRequest req;

	private HttpServletResponse res;

	private Map data;

	public Helper(HttpServletRequest req, HttpServletResponse res) {
		this.req = req;
		this.res = res;
	}

	public HttpServletRequest getReq() {
		return this.req;
	}

	public HttpServletResponse getRes() {
		return this.res;
	}

	public Map getData() {
		// Map map = req.getParameterMap();
		// Set<Entry> set = map.entrySet();
		// for(Entry e : set) {
		// System.out.println(e.getKey()+"\t"+((String[])e.getValue())[0]);
		// }
		data = new HashMap();
		Map<String, String[]> map1 = (Map<String, String[]>) req.getParameterMap();
		Set<String> set1 = map1.keySet();
		for (String s : set1) {
			String[] ss = map1.get(s);
			if (ss != null && ss.length == 1) {
				//不用每次将Object转为String[]后又取[0]个
				data.put(s, ss[0]);
			} else {
				//如果超过长度,直接放原来的
				data.put(s, ss);
			}
		}
		return data;
	}

	public ICommand getCommand() {
		String cmdClass = null;
		//路径即command.do第一判断,对应command.do传值
		String path = req.getRequestURI();
		//表单隐藏域优先,对应hidden传command
		if(req.getParameter("command")!=null) {
			path = (String)req.getParameter("command");
		}
		//设置command在request时最优先,对应循环command调用
		if(req.getAttribute("command")!=null) {
			path = (String)req.getAttribute("command");
		}
		System.out.println("path="+path);

		int start = path.lastIndexOf("/");
		start= start<=0?-1:start;
		int end = 0;
		if(path.indexOf(".do")!=-1)
			end = path.length()-3;
		else
			end = path.length();
		cmdClass = path.substring(start+1,end);
		
		System.out.println("cmdClass="+cmdClass);
		
		return (ICommand) CmdFactory.getInstance().createCmd(cmdClass);
	}
}

⌨️ 快捷键说明

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