Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Как получить результат обработки jsp в коде?


Автор: chaos 31.10.2010, 11:49
Доброго времени суток!
Встала задача получить сгенерированную из jsp страницу внутри кода
Как решить данную задачу?

ЗЫ код этот работает под томкатом
ЗЫЫ использую spring

Автор: powerOn 31.10.2010, 17:59
а зачем это нужно? простой HTTP запрос к странице не поможет?

Автор: werdy 1.11.2010, 07:00
Это возможно сделать включив моск (MockHttpServletRequest) smile 

Автор: chaos 2.11.2010, 11:43
Цитата(powerOn @ 31.10.2010,  14:59)
а зачем это нужно? простой HTTP запрос к странице не поможет?

поможет, но хотелоь бы без него.

читаю про MockHttpServletRequest

Автор: chaos 3.11.2010, 11:47
написал такой код
Код

MockHttpServletRequest request = new MockHttpServletRequest();
request.setMethod("GET");
request.setRequestURI("/" + cardId + ".txt");

MockHttpServletResponse response = new MockHttpServletResponse();
new AnnotationMethodHandlerAdapter().handle(request, response, new CardInfo(cardService));
log.debug(response.getContentLength()); //0


в респонсе ничего нет :( а мне нужно тоже самое что я вижу в броузере

Автор: chaos 8.11.2010, 19:38
уже отдельно все вынес, а воз и ныне там :(

Код

package ru.xxx.lassd.jsprender;

import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.mock.web.MockServletConfig;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.GenericWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;

public class App {
    public static void main(String[] args) throws Exception {
        @SuppressWarnings("serial")
        DispatcherServlet servlet = new DispatcherServlet() {
            protected WebApplicationContext createWebApplicationContext(
                    WebApplicationContext parent) {
                GenericWebApplicationContext wac = new GenericWebApplicationContext();
                wac.registerBeanDefinition("controller",
                        new RootBeanDefinition(TestController.class));
                wac.registerBeanDefinition("viewResolver",
                        new RootBeanDefinition(TestViewResolver.class));
                wac.refresh();
                return wac;
            }
        };

        servlet.init(new MockServletConfig());

        MockHttpServletRequest request = new MockHttpServletRequest("GET",
                "/myPath.do");
        MockHttpServletResponse response = new MockHttpServletResponse();
        servlet.service(request, response);
        
        System.out.println("Content: " + response.getContentAsString());
    }
}

@Controller
class TestController {
    @RequestMapping("/myPath.do")
    public ModelAndView handleRequest() {
        return new ModelAndView("txt");
    }
}

class TestViewResolver extends InternalResourceViewResolver {
    @Override
    protected String getPrefix() {
        return "/Users/chaos/Tmp/";
    }

    @Override
    protected String getSuffix() {
        return ".jsp";
    }

    @SuppressWarnings("rawtypes")
    @Override
    protected Class getViewClass() {
        return JstlView.class;
    }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)