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

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

Introduction

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

Prototype

@Nullable
public String getUrl() 

Source Link

Document

Return the URL of the resource that this view wraps.

Usage

From source file:org.toobsframework.pres.doit.controller.strategy.DefaultForwardStrategy.java

public AbstractUrlBasedView resolveSuccessForward(IRequest componentRequest, DoIt doIt,
        Map<String, Object> forwardParams) {

    AbstractUrlBasedView forwardView = null;
    String forwardName = getForwardName(FORWARD_NAME_PARAM, componentRequest.getParams());
    if (forwardName == null) {
        forwardName = DEFAULT_SUCCESS_FORWARD_NAME;
    }//from   ww w .  ja va  2  s  . c om

    Forward toobsForwardDef = getForward(doIt, forwardName);
    if (toobsForwardDef != null) {
        String forwardTo = ParameterUtil.resoveForwardPath(componentRequest, toobsForwardDef,
                componentRequest.getHttpRequest().getParameterMap());
        forwardView = new RedirectView(forwardTo, true);

        if (toobsForwardDef != null && toobsForwardDef.getParameters() != null) {
            // Create a clone of the input params
            Map<String, Object> allParams = new HashMap<String, Object>(componentRequest.getParams());
            // Add the response params to it
            allParams.putAll(componentRequest.getResponseParams());
            try {
                ParameterUtil.mapParameters(componentRequest, "Forward:" + toobsForwardDef.getUri(),
                        toobsForwardDef.getParameters().getParameter(), allParams, forwardParams,
                        doIt.getName());
            } catch (ParameterException e) {
                log.error("Forward Parameter Mapping error " + e.getMessage(), e);
                componentRequest.getHttpResponse().setHeader(PresConstants.TOOBS_EXCEPTION_HEADER_NAME, "true");
                forwardView = new InternalResourceView(this.getReferer(componentRequest.getHttpRequest()));
            }
        }
    }

    if (log.isDebugEnabled()) {
        log.debug("Success forward to: " + (toobsForwardDef != null ? toobsForwardDef.getName() : "null")
                + " URI: " + (forwardView != null ? forwardView.getUrl() : "null"));
        Iterator<Map.Entry<String, Object>> iter = forwardParams.entrySet().iterator();
        while (iter.hasNext()) {
            Map.Entry<String, Object> entry = iter.next();
            log.debug("-->Forward Param - name: " + entry.getKey() + " value: " + entry.getValue());
        }
    }
    return forwardView;
}

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   www. j ava 2  s . c o  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;
}