渲染者JspRenderer.java完成视图的选择和把数据放入作用域。
package cn.eternal.renderer;import java.util.HashMap;import java.util.Map;import java.util.Set;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class JspRenderer extends Renderer { private String path; private Mapmodel; protected String contentType; public String getContentType() { return contentType; } public void setContentType(String contentType) { this.contentType = contentType; } public JspRenderer(String path) { this.path = path; this.model = new HashMap (); } public JspRenderer(String path, Map model) { this.path = path; this.model = model; } public JspRenderer(String path, String modelKey, Object modelValue) { this.path = path; this.model = new HashMap (); this.model.put(modelKey, modelValue); } @Override public void render(ServletContext context, HttpServletRequest request, HttpServletResponse response) throws Exception { Set keys = model.keySet(); for (String key : keys) { request.setAttribute(key, model.get(key)); } request.getRequestDispatcher(path).forward(request, response); }}