Java Code Examples for org.apache.velocity.context.Context

The following are top voted examples for showing how to use org.apache.velocity.context.Context. These examples are extracted from open source projects. You can vote up the examples you like and your votes will be used in our system to generate more good examples.
Example 1
Project: fengduo   File: CustomVelocityLayoutView.java   Source Code and License 7 votes vote down vote up
/**
 * 创建velocity的Context后注如一些工具类和widget
 */
@SuppressWarnings({ "rawtypes", "unchecked" })
protected Context createVelocityContext(Map model, HttpServletRequest request, HttpServletResponse response)
                                                                                                            throws Exception {
    Context context = super.createVelocityContext(model, request, response);
    if (contextPath == null) {
        contextPath = request.getContextPath();
    }
    context.put("base", contextPath);

    if (viewTools == null) {
        initViewTools();
    }
    if (viewTools.size() != 0) {
        for (String name : viewTools.keySet()) {
            context.put(name, viewTools.get(name));
            logger.debug("the view tool named " + name + " is added to velocity context");
        }
    }

    context.put("widget", new Widget(applicationContext, request, response));
    return context;
}
 
Example 2
Project: spring-velocity-adapter   File: VelocityLayoutView.java   Source Code and License 6 votes vote down vote up
/**
 * Overrides the normal rendering process in order to pre-process the Context,
 * merging it with the screen template into a single value (identified by the
 * value of screenContentKey). The layout template is then merged with the
 * modified Context in the super class.
 */
@Override
protected void doRender(Context context, HttpServletResponse response) throws Exception {
	renderScreenContent(context);

	// Velocity context now includes any mappings that were defined
	// (via #set) in screen content template.
	// The screen template can overrule the layout by doing
	// #set( $layout = "MyLayout.vm" )
	String layoutUrlToUse = (String) context.get(this.layoutKey);
	if (layoutUrlToUse != null) {
		if (logger.isDebugEnabled()) {
			logger.debug("Screen content template has requested layout [" + layoutUrlToUse + "]");
		}
	}
	else {
		// No explicit layout URL given -> use default layout of this view.
		layoutUrlToUse = this.layoutUrl;
	}

	mergeTemplate(getTemplate(layoutUrlToUse), context, response);
}
 
Example 3
Project: spring-velocity-adapter   File: VelocityView.java   Source Code and License 6 votes vote down vote up
/**
 * Merge the template with the context.
 * Can be overridden to customize the behavior.
 * @param template the template to merge
 * @param context the Velocity context to use for rendering
 * @param response servlet response (use this to get the OutputStream or Writer)
 * @throws Exception if thrown by Velocity
 * @see org.apache.velocity.Template#merge
 */
protected void mergeTemplate(
		Template template, Context context, HttpServletResponse response) throws Exception {

	try {
		template.merge(context, response.getWriter());
	}
	catch (MethodInvocationException ex) {
		Throwable cause = ex.getWrappedThrowable();
		throw new NestedServletException(
				"Method invocation failed during rendering of Velocity view with name '" +
				getBeanName() + "': " + ex.getMessage() + "; reference [" + ex.getReferenceName() +
				"], method '" + ex.getMethodName() + "'",
				cause==null ? ex : cause);
	}
}
 
Example 4
Project: spring-velocity-adapter   File: VelocityToolboxView.java   Source Code and License 6 votes vote down vote up
/**
 * Overridden to create a ChainedContext, which is part of the view package
 * of Velocity Tools, as special context. ChainedContext is needed for
 * initialization of ViewTool instances.
 * @see #initTool
 */
@Override
protected Context createVelocityContext(
		Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {

	// Create a ChainedContext instance.
	ChainedContext velocityContext = new ChainedContext(
			new VelocityContext(model), getVelocityEngine(), request, response, getServletContext());

	// Load a Velocity Tools toolbox, if necessary.
	if (getToolboxConfigLocation() != null) {
		ToolboxManager toolboxManager = ServletToolboxManager.getInstance(
				getServletContext(), getToolboxConfigLocation());
		Map<String, Object> toolboxContext = toolboxManager.getToolbox(velocityContext);
		velocityContext.setToolbox(toolboxContext);
	}

	return velocityContext;
}
 
Example 5
Project: spring4-understanding   File: VelocityLayoutView.java   Source Code and License 6 votes vote down vote up
/**
 * Overrides the normal rendering process in order to pre-process the Context,
 * merging it with the screen template into a single value (identified by the
 * value of screenContentKey). The layout template is then merged with the
 * modified Context in the super class.
 */
@Override
protected void doRender(Context context, HttpServletResponse response) throws Exception {
	renderScreenContent(context);

	// Velocity context now includes any mappings that were defined
	// (via #set) in screen content template.
	// The screen template can overrule the layout by doing
	// #set( $layout = "MyLayout.vm" )
	String layoutUrlToUse = (String) context.get(this.layoutKey);
	if (layoutUrlToUse != null) {
		if (logger.isDebugEnabled()) {
			logger.debug("Screen content template has requested layout [" + layoutUrlToUse + "]");
		}
	}
	else {
		// No explicit layout URL given -> use default layout of this view.
		layoutUrlToUse = this.layoutUrl;
	}

	mergeTemplate(getTemplate(layoutUrlToUse), context, response);
}
 
Example 6
Project: spring4-understanding   File: VelocityView.java   Source Code and License 6 votes vote down vote up
/**
 * Merge the template with the context.
 * Can be overridden to customize the behavior.
 * @param template the template to merge
 * @param context the Velocity context to use for rendering
 * @param response servlet response (use this to get the OutputStream or Writer)
 * @throws Exception if thrown by Velocity
 * @see org.apache.velocity.Template#merge
 */
protected void mergeTemplate(
		Template template, Context context, HttpServletResponse response) throws Exception {

	try {
		template.merge(context, response.getWriter());
	}
	catch (MethodInvocationException ex) {
		Throwable cause = ex.getWrappedThrowable();
		throw new NestedServletException(
				"Method invocation failed during rendering of Velocity view with name '" +
				getBeanName() + "': " + ex.getMessage() + "; reference [" + ex.getReferenceName() +
				"], method '" + ex.getMethodName() + "'",
				cause==null ? ex : cause);
	}
}
 
Example 7
Project: spring4-understanding   File: VelocityToolboxView.java   Source Code and License 6 votes vote down vote up
/**
 * Overridden to create a ChainedContext, which is part of the view package
 * of Velocity Tools, as special context. ChainedContext is needed for
 * initialization of ViewTool instances.
 * @see #initTool
 */
@Override
protected Context createVelocityContext(
		Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {

	// Create a ChainedContext instance.
	ChainedContext velocityContext = new ChainedContext(
			new VelocityContext(model), getVelocityEngine(), request, response, getServletContext());

	// Load a Velocity Tools toolbox, if necessary.
	if (getToolboxConfigLocation() != null) {
		ToolboxManager toolboxManager = ServletToolboxManager.getInstance(
				getServletContext(), getToolboxConfigLocation());
		Map<?, ?> toolboxContext = toolboxManager.getToolbox(velocityContext);
		velocityContext.setToolbox(toolboxContext);
	}

	return velocityContext;
}
 
Example 8
Project: spring4-understanding   File: VelocityMacroTests.java   Source Code and License 6 votes vote down vote up
@Test
public void exposeSpringMacroHelpers() throws Exception {
	VelocityView vv = new VelocityView() {
		@Override
		protected void mergeTemplate(Template template, Context context, HttpServletResponse response) {
			assertTrue(context.get(VelocityView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE) instanceof RequestContext);
			RequestContext rc = (RequestContext) context.get(VelocityView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE);
			BindStatus status = rc.getBindStatus("tb.name");
			assertEquals("name", status.getExpression());
			assertEquals("juergen", status.getValue());
		}
	};
	vv.setUrl(TEMPLATE_FILE);
	vv.setApplicationContext(wac);
	vv.setExposeSpringMacroHelpers(true);

	Map<String, Object> model = new HashMap<String, Object>();
	model.put("tb", new TestBean("juergen", 99));
	vv.render(model, request, response);
}
 
Example 9
Project: spring4-understanding   File: VelocityMacroTests.java   Source Code and License 6 votes vote down vote up
@Test
public void springMacroRequestContextAttributeUsed() {
	final String helperTool = "wrongType";

	VelocityView vv = new VelocityView() {
		@Override
		protected void mergeTemplate(Template template, Context context, HttpServletResponse response) {
			fail();
		}
	};
	vv.setUrl(TEMPLATE_FILE);
	vv.setApplicationContext(wac);
	vv.setExposeSpringMacroHelpers(true);

	Map<String, Object> model = new HashMap<String, Object>();
	model.put(VelocityView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE, helperTool);

	try {
		vv.render(model, request, response);
	}
	catch (Exception ex) {
		assertTrue(ex instanceof ServletException);
		assertTrue(ex.getMessage().contains(VelocityView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE));
	}
}
 
Example 10
Project: beyondj   File: AuthenticationServlet.java   Source Code and License 6 votes vote down vote up
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    Template template = null;

    try {
        template = velocityEngine.getTemplate("authentication.tpl");
    } catch (Exception e) {
        LOG.error("Could not find authentication.tpl");
        response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Could not find authentication.tpl");
    }
    request.getSession().invalidate();

    Context context = localizedVelocityContexts.get(request.getLocale());
    if (context == null) {
        context = localizedVelocityContexts.get(Locale.ENGLISH);
    }

    StringWriter writer = new StringWriter();
    template.merge(context, writer);

    response.setContentType(TEXT_HTML);
    response.getWriter().write(writer.toString());
}
 
Example 11
Project: beyondj   File: InstallationServlet.java   Source Code and License 6 votes vote down vote up
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    //TODO: use authentication servlet an redirect back and forth
    Template template = null;

    try {
        template = velocityEngine.getTemplate("authentication.tpl");
    } catch (Exception e) {
        LOG.error("Could not find authentication.tpl");
        resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Could not find authentication.tpl");
    }
    req.getSession().invalidate();

    Context context = localizedVelocityContexts.get(req.getLocale());
    if (context == null) {
        context = localizedVelocityContexts.get(Locale.ENGLISH);
    }

    StringWriter writer = new StringWriter();
    template.merge(context, writer);

    resp.setContentType(TEXT_HTML);
    resp.getWriter().write(writer.toString());
}
 
Example 12
Project: nbone   File: VlocityFormat.java   Source Code and License 6 votes vote down vote up
public static String format(VelocityEngine ve,String pattern, Object dataModel){
	if(ve == null){
		ve = VlocityFormat.ve;
	}
	Context context = createVelocityContext(dataModel);

	//raw return 
	if(context == null){
		return pattern;
	}
	
	StringWriter writer = new StringWriter();
	ve.evaluate(context, writer, "logTag", pattern);
	
	return writer.toString();
}
 
Example 13
Project: nbone   File: VlocityFormat.java   Source Code and License 6 votes vote down vote up
public static String format(VelocityEngine ve,Reader reader, Object dataModel){
	if(ve == null){
		ve = VlocityFormat.ve;
	}
	Context context = createVelocityContext(dataModel);

	//raw return 
	if(context == null){
		return reader.toString();
	}
	
	StringWriter writer = new StringWriter();
	ve.evaluate(context, writer, "logTag", reader);
	
	return writer.toString();
}
 
Example 14
Project: java-template-simple   File: VelocityToolboxView.java   Source Code and License 6 votes vote down vote up
@Override
protected Context createVelocityContext(Map<String, Object> model,
		HttpServletRequest request, HttpServletResponse response)
		throws Exception {
	ViewToolContext velocityContext = new ViewToolContext(getVelocityEngine(), request, response, getServletContext());
	velocityContext.putAll(model);
	if(getToolboxConfigLocation() != null ||getToolboxConfigResource() != null){
		XmlFactoryConfiguration cfg = new XmlFactoryConfiguration();
		URL cfgUrl;
		if(getToolboxConfigLocation() != null){
			cfgUrl = new ServletContextResource(getServletContext(), getToolboxConfigLocation()).getURL();
			cfg.read(cfgUrl);
		}else if(getToolboxConfigResource() != null){
			cfgUrl = getToolboxConfigResource().getURL();
			cfg.read(cfgUrl);
			ToolboxFactory factory = cfg.createFactory();
			
			velocityContext.addToolbox(factory.createToolbox(Scope.APPLICATION));
			velocityContext.addToolbox(factory.createToolbox(Scope.REQUEST));
			velocityContext.addToolbox(factory.createToolbox(Scope.SESSION));
		}
	}
	return velocityContext;
}
 
Example 15
Project: sakai   File: VelocityPortalRenderEngine.java   Source Code and License 6 votes vote down vote up
public void render(String template, PortalRenderContext rcontext, Writer out)
		throws Exception
{
	if (log.isTraceEnabled()) {
	   log.trace("Portal trace is on, dumping PortalRenderContext to log:\n" + rcontext.dump());
	}
	
	Context vc = ((VelocityPortalRenderContext) rcontext).getVelocityContext();
	String skin = (String) vc.get("pageCurrentSkin");
	if (skin == null || skin.length() == 0)
	{
		skin = defaultSkin;
	}
	if (!defaultSkin.equals(skin))
	{
		vengine.getTemplate("/vm/" + skin + "/macros.vm");
	}
	vengine.mergeTemplate("/vm/" + skin + "/" + template + ".vm",
			((VelocityPortalRenderContext) rcontext).getVelocityContext(), out);

}
 
Example 16
Project: olat   File: TACourseNodeEditController.java   Source Code and License 6 votes vote down vote up
private String getTaskDeletedMailBody(final UserRequest ureq, final String fileName, final String courseName, final String courseLink) {
    // grab standard text
    final String confirmation = translate("task.deleted.body");

    final Context c = new VelocityContext();
    final Identity identity = ureq.getIdentity();
    c.put("login", identity.getName());
    c.put("first", getUserService().getUserProperty(identity.getUser(), UserConstants.FIRSTNAME, getLocale()));
    c.put("last", getUserService().getUserProperty(identity.getUser(), UserConstants.LASTNAME, getLocale()));
    c.put("email", getUserService().getUserProperty(identity.getUser(), UserConstants.EMAIL, getLocale()));
    c.put("filename", fileName);
    c.put("coursename", courseName);
    c.put("courselink", courseLink);
    final VelocityHelper vh = (VelocityHelper) CoreSpringFactory.getBean(VelocityHelper.class);
    return vh.evaluateVTL(confirmation, c);
}
 
Example 17
Project: olat   File: VelocityContainerRenderer.java   Source Code and License 6 votes vote down vote up
/**
 * org.olat.presentation.framework.components.Component, org.olat.presentation.framework.render.URLBuilder, org.olat.presentation.framework.translator.Translator,
 * org.olat.presentation.framework.render.RenderResult, java.lang.String[])
 */
@Override
public void render(Renderer renderer, StringOutput target, Component source, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) {
    VelocityContainer vc = (VelocityContainer) source;
    String pagePath = vc.getPage();
    Context ctx = vc.getContext();

    // the component id of the urlbuilder will be overwritten by the recursive render call for
    // subcomponents (see Renderer)
    Renderer fr = Renderer.getInstance(vc, translator, ubu, renderResult, renderer.getGlobalSettings());
    VelocityRenderDecorator vrdec = new VelocityRenderDecorator(fr, vc);
    ctx.put("r", vrdec);
    String mm = velocityHelper.mergeContent(pagePath, ctx, theme);

    // experimental!!!
    // surround with red border if recording mark indicates so.
    if (vc.markingCommandString != null) {
        target.append("<table style=\"border:3px solid red; background-color:#E0E0E0; padding:4px; margin:0px;\"><tr><td>").append(mm).append("</td></tr></table>");
    } else {
        target.append(mm);
    }
}
 
Example 18
Project: olat   File: AbstractDropboxBaseController.java   Source Code and License 6 votes vote down vote up
private String getConfirmation(final UserRequest ureq, final String filename) {
    // grab standard text
    final String confirmation = getDefaultConfirmationText();

    final Context c = new VelocityContext();
    final Identity identity = ureq.getIdentity();
    c.put("login", identity.getName());
    c.put("first", getUserService().getUserProperty(identity.getUser(), UserConstants.FIRSTNAME, getLocale()));
    c.put("last", getUserService().getUserProperty(identity.getUser(), UserConstants.LASTNAME, getLocale()));
    c.put("email", getUserService().getUserProperty(identity.getUser(), UserConstants.EMAIL, getLocale()));
    c.put("filename", filename);
    final Date now = new Date();
    final Formatter f = Formatter.getInstance(ureq.getLocale());
    c.put("date", f.formatDate(now));
    c.put("time", f.formatTime(now));

    VelocityHelper vh = CoreSpringFactory.getBean(VelocityHelper.class);
    return vh.evaluateVTL(confirmation, c);
}
 
Example 19
Project: olat   File: VelocityContainerRenderer.java   Source Code and License 6 votes vote down vote up
/**
 * org.olat.presentation.framework.components.Component, org.olat.presentation.framework.render.URLBuilder, org.olat.presentation.framework.translator.Translator,
 * org.olat.presentation.framework.render.RenderResult, java.lang.String[])
 */
@Override
public void render(Renderer renderer, StringOutput target, Component source, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) {
    VelocityContainer vc = (VelocityContainer) source;
    String pagePath = vc.getPage();
    Context ctx = vc.getContext();

    // the component id of the urlbuilder will be overwritten by the recursive render call for
    // subcomponents (see Renderer)
    Renderer fr = Renderer.getInstance(vc, translator, ubu, renderResult, renderer.getGlobalSettings());
    VelocityRenderDecorator vrdec = new VelocityRenderDecorator(fr, vc);
    ctx.put("r", vrdec);
    String mm = velocityHelper.mergeContent(pagePath, ctx, theme);

    // experimental!!!
    // surround with red border if recording mark indicates so.
    if (vc.markingCommandString != null) {
        target.append("<table style=\"border:3px solid red; background-color:#E0E0E0; padding:4px; margin:0px;\"><tr><td>").append(mm).append("</td></tr></table>");
    } else {
        target.append(mm);
    }
}
 
Example 20
Project: computoser   File: EmailService.java   Source Code and License 6 votes vote down vote up
private String constructEmailMessages(EmailDetails details) {
    String emailMessage = null;

    if (details.getMessageTemplate() != null) {
        Template template = engine.getTemplate(details.getMessageTemplate(), "UTF-8");
        StringWriter writer = new StringWriter();
        Context ctx = new VelocityContext();
        for (Map.Entry<String, Object> entry : details.getMessageTemplateModel().entrySet()) {
            ctx.put(entry.getKey(), entry.getValue());
        }
        ctx.put("baseUrl", baseUrl);
        ctx.put("currentUser", details.getCurrentUser());

        template.merge(ctx, writer);
        return writer.toString();
    }

    if (details.getMessage() != null) {
        emailMessage = details.getMessage();
    }

    return emailMessage;
}
 
Example 21
Project: class-guard   File: VelocityLayoutView.java   Source Code and License 6 votes vote down vote up
/**
 * Overrides the normal rendering process in order to pre-process the Context,
 * merging it with the screen template into a single value (identified by the
 * value of screenContentKey). The layout template is then merged with the
 * modified Context in the super class.
 */
@Override
protected void doRender(Context context, HttpServletResponse response) throws Exception {
	renderScreenContent(context);

	// Velocity context now includes any mappings that were defined
	// (via #set) in screen content template.
	// The screen template can overrule the layout by doing
	// #set( $layout = "MyLayout.vm" )
	String layoutUrlToUse = (String) context.get(this.layoutKey);
	if (layoutUrlToUse != null) {
		if (logger.isDebugEnabled()) {
			logger.debug("Screen content template has requested layout [" + layoutUrlToUse + "]");
		}
	}
	else {
		// No explicit layout URL given -> use default layout of this view.
		layoutUrlToUse = this.layoutUrl;
	}

	mergeTemplate(getTemplate(layoutUrlToUse), context, response);
}
 
Example 22
Project: class-guard   File: VelocityView.java   Source Code and License 6 votes vote down vote up
/**
 * Merge the template with the context.
 * Can be overridden to customize the behavior.
 * @param template the template to merge
 * @param context the Velocity context to use for rendering
 * @param response servlet response (use this to get the OutputStream or Writer)
 * @throws Exception if thrown by Velocity
 * @see org.apache.velocity.Template#merge
 */
protected void mergeTemplate(
		Template template, Context context, HttpServletResponse response) throws Exception {

	try {
		template.merge(context, response.getWriter());
	}
	catch (MethodInvocationException ex) {
		Throwable cause = ex.getWrappedThrowable();
		throw new NestedServletException(
				"Method invocation failed during rendering of Velocity view with name '" +
				getBeanName() + "': " + ex.getMessage() + "; reference [" + ex.getReferenceName() +
				"], method '" + ex.getMethodName() + "'",
				cause==null ? ex : cause);
	}
}
 
Example 23
Project: class-guard   File: VelocityToolboxView.java   Source Code and License 6 votes vote down vote up
/**
 * Overridden to create a ChainedContext, which is part of the view package
 * of Velocity Tools, as special context. ChainedContext is needed for
 * initialization of ViewTool instances.
 * @see #initTool
 */
@Override
protected Context createVelocityContext(
		Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {

	// Create a ChainedContext instance.
	ChainedContext velocityContext = new ChainedContext(
			new VelocityContext(model), getVelocityEngine(), request, response, getServletContext());

	// Load a Velocity Tools toolbox, if necessary.
	if (getToolboxConfigLocation() != null) {
		ToolboxManager toolboxManager = ServletToolboxManager.getInstance(
				getServletContext(), getToolboxConfigLocation());
		Map toolboxContext = toolboxManager.getToolbox(velocityContext);
		velocityContext.setToolbox(toolboxContext);
	}

	return velocityContext;
}
 
Example 24
Project: class-guard   File: VelocityMacroTests.java   Source Code and License 6 votes vote down vote up
public void testExposeSpringMacroHelpers() throws Exception {
	VelocityView vv = new VelocityView() {
		@Override
		protected void mergeTemplate(Template template, Context context, HttpServletResponse response) {
			assertTrue(context.get(VelocityView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE) instanceof RequestContext);
			RequestContext rc = (RequestContext) context.get(VelocityView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE);
			BindStatus status = rc.getBindStatus("tb.name");
			assertEquals("name", status.getExpression());
			assertEquals("juergen", status.getValue());
		}
	};
	vv.setUrl(TEMPLATE_FILE);
	vv.setApplicationContext(wac);
	vv.setExposeSpringMacroHelpers(true);

	Map<String, Object> model = new HashMap<String, Object>();
	model.put("tb", new TestBean("juergen", 99));
	vv.render(model, request, response);
}
 
Example 25
Project: class-guard   File: VelocityMacroTests.java   Source Code and License 6 votes vote down vote up
public void testSpringMacroRequestContextAttributeUsed() {
	final String helperTool = "wrongType";

	VelocityView vv = new VelocityView() {
		@Override
		protected void mergeTemplate(Template template, Context context, HttpServletResponse response) {
			fail();
		}
	};
	vv.setUrl(TEMPLATE_FILE);
	vv.setApplicationContext(wac);
	vv.setExposeSpringMacroHelpers(true);

	Map<String, Object> model = new HashMap<String, Object>();
	model.put(VelocityView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE, helperTool);

	try {
		vv.render(model, request, response);
	}
	catch (Exception ex) {
		assertTrue(ex instanceof ServletException);
		assertTrue(ex.getMessage().contains(VelocityView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE));
	}
}
 
Example 26
Project: java-course-ee   File: Test3.java   Source Code and License 6 votes vote down vote up
public Test3() throws Exception {
    //init
    Velocity.init("Velocity/GS_Velocity_1/src/main/java/velocity.properties");
    // get Template
    Template template = Velocity.getTemplate("Test3.vm");
    // getContext
    Context context = new VelocityContext();

    String name = "Vova";
    int age = 21;
    boolean flag = true;

    context.put("name", name);
    context.put("age", age);
    context.put("flag", flag);

    context.put("today", new Date());
    context.put("product", new Product("Book", 12.3));

    // get Writer
    Writer writer = new StringWriter();
    // merge
    template.merge(context, writer);

    System.out.println(writer.toString());
}
 
Example 27
Project: java-course-ee   File: Test1.java   Source Code and License 6 votes vote down vote up
public Test1() throws Exception {

        //init
        Velocity.init("Velocity/GS_Velocity_1/src/main/java/velocity.properties");
        // get Template
        Template template = Velocity.getTemplate("Test1.vm");
        // getContext
        Context context = new VelocityContext();
        // get Writer
        Writer writer = new StringWriter();
        // merge
        template.merge(context, writer);

        System.out.println(writer.toString());

    }
 
Example 28
Project: java-course-ee   File: TestServlet.java   Source Code and License 6 votes vote down vote up
@Override
public Template handleRequest(HttpServletRequest request, HttpServletResponse response, Context context) {


    if (request.getParameter("submit") != null) {
        List<String> errors = new ArrayList();
        String name = request.getParameter("name");
        System.out.println("name = " + name);
        try {
            double price = Double.parseDouble(request.getParameter("price"));
            System.out.println("price = " + price);
            products.add(new Product(name, price));
        } catch (NumberFormatException e) {
            System.err.println(e);
            errors.add("Price must be a number");
        }
        context.put("errors", errors);
    }

    Template template = null;
    context.put("products", products);
    context.put("company", "Gemini Systems");
    template = getTemplate("products.vm");
    return template;
}
 
Example 29
Project: sharding   File: VelocityView.java   Source Code and License 6 votes vote down vote up
@Override
protected void renderMergedTemplateModel(Map<String, Object> model, HttpServletRequest request,
		HttpServletResponse response) throws Exception {
	exposeHelpers(model, request);
	Context velocityContext = createVelocityContext(model, request, response);
	Map<String, Object> templateVariables = getApplicationContext().getBeansWithAnnotation(WebModuleVariable.class);
	if (templateVariables != null && templateVariables.size() > 0) {
		for (Map.Entry<String, Object> e : templateVariables.entrySet()) {
			// 注入自定义工具
			String name = e.getKey();
			Object tool = e.getValue();
			if (tool == null) {
				continue;
			}
			if (tool instanceof ContextAware) {
				((ContextAware) tool).setContext(velocityContext);
			}
			velocityContext.put(name, tool);
		}
	}
	exposeHelpers(velocityContext, request, response);
	doRender(velocityContext, response);
}
 
Example 30
Project: sharding   File: VelocityView.java   Source Code and License 6 votes vote down vote up
protected void doRender(Context context, HttpServletResponse response) throws Exception {
	if (logger.isDebugEnabled()) {
		logger.debug("Rendering Velocity template [" + getUrl() + "] in VelocityView '" + getBeanName()
				+ "', velocity '" + viewName + "'");
	}

	Template screenTemplate = getTemplate(getUrl());
	// 同名的layout
	String layoutTemplateURL = templates + layout + viewName + suffix;
	Template layoutTemplate = loadTemplate(layoutTemplateURL);

	if (layoutTemplate == null) {// 默认的layout
		layoutTemplateURL = templates + layout + defaultLayoutTemplate;
		layoutTemplate = loadTemplate(layoutTemplateURL);
	}

	if (layoutTemplate == null) {// 没有找到layout就只解析screen
		mergeTemplate(screenTemplate, context, response);
		return;
	}

	context.put(screenTemplateKey, templateRender(context, screenTemplate));
	mergeTemplate(layoutTemplate, context, response);
}
 
Example 31
Project: sharding   File: VelocityView.java   Source Code and License 6 votes vote down vote up
/**
 * 渲染一个模板。
 * 
 * @param context
 * @param template
 * @return
 */
protected String templateRender(Context context, Template template) {
	if (template == null || context == null) {
		return "";
	}
	try {
		StringWriter sw = new StringWriter();
		template.merge(context, sw);
		return sw.toString();
	} catch (Exception e) {
		if (logger.isErrorEnabled()) {
			logger.error(String.format("Template[%s] Render Error.", template.getName()), e);
		}
	}
	return "";
}
 
Example 32
Project: spring-velocity-adapter   File: VelocityLayoutView.java   Source Code and License 5 votes vote down vote up
/**
 * The resulting context contains any mappings from render, plus screen content.
 */
private void renderScreenContent(Context velocityContext) throws Exception {
	if (logger.isDebugEnabled()) {
		logger.debug("Rendering screen content template [" + getUrl() + "]");
	}

	StringWriter sw = new StringWriter();
	Template screenContentTemplate = getTemplate(getUrl());
	screenContentTemplate.merge(velocityContext, sw);

	// Put rendered content into Velocity context.
	velocityContext.put(this.screenContentKey, sw.toString());
}
 
Example 33
Project: spring-velocity-adapter   File: VelocityView.java   Source Code and License 5 votes vote down vote up
/**
 * Process the model map by merging it with the Velocity template.
 * Output is directed to the servlet response.
 * <p>This method can be overridden if custom behavior is needed.
 */
@Override
protected void renderMergedTemplateModel(
		Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {

	exposeHelpers(model, request);

	Context velocityContext = createVelocityContext(model, request, response);
	exposeHelpers(velocityContext, request, response);
	exposeToolAttributes(velocityContext, request);

	doRender(velocityContext, response);
}
 
Example 34
Project: spring-velocity-adapter   File: VelocityView.java   Source Code and License 5 votes vote down vote up
/**
 * Expose the tool attributes, according to corresponding bean property settings.
 * <p>Do not override this method unless for further tools driven by bean properties.
 * Override one of the {@code exposeHelpers} methods to add custom helpers.
 * @param velocityContext Velocity context that will be passed to the template
 * @param request current HTTP request
 * @throws Exception if there's a fatal error while we're adding model attributes
 * @see #setDateToolAttribute
 * @see #setNumberToolAttribute
 * @see #exposeHelpers(Map, HttpServletRequest)
 * @see #exposeHelpers(org.apache.velocity.context.Context, HttpServletRequest, HttpServletResponse)
 */
protected void exposeToolAttributes(Context velocityContext, HttpServletRequest request) throws Exception {
	// Expose generic attributes.
	if (this.toolAttributes != null) {
		for (Map.Entry<String, Class<?>> entry : this.toolAttributes.entrySet()) {
			String attributeName = entry.getKey();
			Class<?> toolClass = entry.getValue();
			try {
				Object tool = toolClass.newInstance();
				initTool(tool, velocityContext);
				velocityContext.put(attributeName, tool);
			}
			catch (Exception ex) {
				throw new NestedServletException("Could not instantiate Velocity tool '" + attributeName + "'", ex);
			}
		}
	}

	// Expose locale-aware DateTool/NumberTool attributes.
	if (this.dateToolAttribute != null || this.numberToolAttribute != null) {
		if (this.dateToolAttribute != null) {
			velocityContext.put(this.dateToolAttribute, new LocaleAwareDateTool(request));
		}
		if (this.numberToolAttribute != null) {
			velocityContext.put(this.numberToolAttribute, new LocaleAwareNumberTool(request));
		}
	}
}
 
Example 35
Project: spring-velocity-adapter   File: VelocityToolboxView.java   Source Code and License 5 votes vote down vote up
/**
 * Overridden to check for the ViewContext interface which is part of the
 * view package of Velocity Tools. This requires a special Velocity context,
 * like ChainedContext as set up by {@link #createVelocityContext} in this class.
 */
@Override
protected void initTool(Object tool, Context velocityContext) throws Exception {
	// Velocity Tools 1.3: a class-level "init(Object)" method.
	Method initMethod = ClassUtils.getMethodIfAvailable(tool.getClass(), "init", Object.class);
	if (initMethod != null) {
		ReflectionUtils.invokeMethod(initMethod, tool, velocityContext);
	}
}
 
Example 36
Project: PrOfESSOS   File: RPLearningBrowser.java   Source Code and License 5 votes vote down vote up
private String evalSubmitFormTemplate(String inputName) {
	logger.log("Found input field with name '" + inputName + "'.");

	// eval template
	Reader r = new InputStreamReader(getClass().getResourceAsStream("/submit-form.vlt"), StandardCharsets.UTF_8);
	Context ctx = createRPContext();
	ctx.put("input-field", inputName);
	String result = te.eval(ctx, r);

	logger.log("Created Selenium script based on found input field '" + inputName + "'.");
	logger.log(result);

	return result;
}
 
Example 37
Project: Gargoyle   File: ValueUtil.java   Source Code and License 5 votes vote down vote up
/**
 * Velocity문법의 텍스트를 맵핑된 텍스트결과값으로 반환
 *
 * @작성자 : KYJ
 * @작성일 : 2015. 10. 22.
 * @param dynamicSql
 * @param paramMap
 * @param replaceNamedValue
 *            namedParameter값을 바인드 변수로 사용하여 보여줄지 유무
 * @param customReplaceFormat
 *            변환할 문자열을 커스텀한 포멧으로 리턴받을 수 있는 기능을 제공하기 위한 파라미터
 * @return
 */
public static String getVelocityToText(String dynamicSql, Map<String, Object> paramMap, boolean replaceNamedValue,
		Context velocityContext, Function<String, String> customReplaceFormat) {
	StringWriter writer = new StringWriter();
	VelocityContext context = new VelocityContext(paramMap, new ExtensionDateFormatVelocityContext(velocityContext));

	String _dynamicSql = dynamicSql;

	Velocity.evaluate(context, writer, "DaoWizard", _dynamicSql);
	String convetedString = writer.toString();
	if (replaceNamedValue) {
		convetedString = replace(convetedString, paramMap, customReplaceFormat);
	}
	return convetedString.trim();
}
 
Example 38
Project: spring4-understanding   File: VelocityLayoutView.java   Source Code and License 5 votes vote down vote up
/**
 * The resulting context contains any mappings from render, plus screen content.
 */
private void renderScreenContent(Context velocityContext) throws Exception {
	if (logger.isDebugEnabled()) {
		logger.debug("Rendering screen content template [" + getUrl() + "]");
	}

	StringWriter sw = new StringWriter();
	Template screenContentTemplate = getTemplate(getUrl());
	screenContentTemplate.merge(velocityContext, sw);

	// Put rendered content into Velocity context.
	velocityContext.put(this.screenContentKey, sw.toString());
}
 
Example 39
Project: spring4-understanding   File: VelocityView.java   Source Code and License 5 votes vote down vote up
/**
 * Process the model map by merging it with the Velocity template.
 * Output is directed to the servlet response.
 * <p>This method can be overridden if custom behavior is needed.
 */
@Override
protected void renderMergedTemplateModel(
		Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {

	exposeHelpers(model, request);

	Context velocityContext = createVelocityContext(model, request, response);
	exposeHelpers(velocityContext, request, response);
	exposeToolAttributes(velocityContext, request);

	doRender(velocityContext, response);
}
 
Example 40
Project: spring4-understanding   File: VelocityView.java   Source Code and License 5 votes vote down vote up
/**
 * Expose the tool attributes, according to corresponding bean property settings.
 * <p>Do not override this method unless for further tools driven by bean properties.
 * Override one of the {@code exposeHelpers} methods to add custom helpers.
 * @param velocityContext Velocity context that will be passed to the template
 * @param request current HTTP request
 * @throws Exception if there's a fatal error while we're adding model attributes
 * @see #setDateToolAttribute
 * @see #setNumberToolAttribute
 * @see #exposeHelpers(Map, HttpServletRequest)
 * @see #exposeHelpers(org.apache.velocity.context.Context, HttpServletRequest, HttpServletResponse)
 */
protected void exposeToolAttributes(Context velocityContext, HttpServletRequest request) throws Exception {
	// Expose generic attributes.
	if (this.toolAttributes != null) {
		for (Map.Entry<String, Class<?>> entry : this.toolAttributes.entrySet()) {
			String attributeName = entry.getKey();
			Class<?> toolClass = entry.getValue();
			try {
				Object tool = toolClass.newInstance();
				initTool(tool, velocityContext);
				velocityContext.put(attributeName, tool);
			}
			catch (Exception ex) {
				throw new NestedServletException("Could not instantiate Velocity tool '" + attributeName + "'", ex);
			}
		}
	}

	// Expose locale-aware DateTool/NumberTool attributes.
	if (this.dateToolAttribute != null || this.numberToolAttribute != null) {
		if (this.dateToolAttribute != null) {
			velocityContext.put(this.dateToolAttribute, new LocaleAwareDateTool(request));
		}
		if (this.numberToolAttribute != null) {
			velocityContext.put(this.numberToolAttribute, new LocaleAwareNumberTool(request));
		}
	}
}