Example usage for org.springframework.web.servlet.view AbstractUrlBasedView setUrl

List of usage examples for org.springframework.web.servlet.view AbstractUrlBasedView setUrl

Introduction

In this page you can find the example usage for org.springframework.web.servlet.view AbstractUrlBasedView setUrl.

Prototype

public void setUrl(@Nullable String url) 

Source Link

Document

Set the URL of the resource that this view wraps.

Usage

From source file:org.jtwig.mvc.JtwigViewResolver.java

@Override
protected AbstractUrlBasedView buildView(String viewName) throws Exception {
    AbstractUrlBasedView abstractUrlBasedView = super.buildView(viewName);
    abstractUrlBasedView.setUrl(urlResolver().resolve(getPrefix(), viewName, getSuffix()));
    return abstractUrlBasedView;
}

From source file:org.nextframework.controller.CompositeViewResolver.java

@Override
protected View loadView(String viewName, Locale locale) throws Exception {
    boolean direct = false;
    if (viewName.startsWith("direct:")) {
        direct = true;//from w ww .j av a  2s.co  m
        viewName = viewName.substring("direct:".length());
    }

    String classpathView = null;

    if (viewName.startsWith("classpath:")) {
        viewName = viewName.substring("classpath:".length());

        String path = viewName.substring(0, viewName.lastIndexOf('.'));

        URL resource = getServletContext()
                .getResource("/WEB-INF/classes/" + viewName.replace('.', '/') + ".jsp");
        if (resource == null) {
            InputStream in = getClass().getClassLoader()
                    .getResourceAsStream(viewName.replace('.', '/') + ".jsp");
            if (in == null) {
                throw new RuntimeException("view not found " + viewName);
            }
            File dir = new File(getServletContext().getRealPath("/WEB-INF/classes/" + path.replace('.', '/')));
            dir.mkdirs();
            BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(getServletContext()
                    .getRealPath("/WEB-INF/classes/" + viewName.replace('.', '/') + ".jsp")));
            int data;
            while (((data = in.read()) >= 0)) {
                out.write(data);
            }
            out.flush();
        }
        classpathView = "/WEB-INF/classes/" + viewName.replace('.', '/') + ".jsp";
    }

    AbstractUrlBasedView view = (AbstractUrlBasedView) super.loadView(viewName, locale);

    if (direct) {
        return view;
    }

    if (classpathView != null) {
        view.setUrl(classpathView);
    }

    if (useBase == null) {
        String[] bases = baseView.split(",");
        for (String base : bases) {
            if (getServletContext().getResourceAsStream(base) == null) {
                useBase = false;
            } else {
                useBase = true;
                baseView = base;
                break;
            }
        }
    }
    if (!useBase) {
        return super.loadView(viewName, locale);
    }

    if (baseView == null) {
        throw new RuntimeException(
                CompositeViewResolver.class.getName() + ": property baseView no pode ser null");
    }

    if (parameterName == null) {
        throw new RuntimeException(
                CompositeViewResolver.class.getName() + ": property parameterName no pode ser null");
    }

    //url q seria usada
    String previousURL = view.getUrl();
    view.addStaticAttribute(parameterName, previousURL);
    //log.info(baseView+" > "+parameterName+" = "+previousURL);
    if (getServletContext().getResourceAsStream(previousURL) == null) {
        log.warn("Pgina no existente: " + previousURL);
    }
    view.setUrl(baseView);

    return view;
}