Spring和Tiles-手动呈现JSP文件
我们使用Spring3和ApacheTiles创建在Tomcat7上运行的web应用程序 是否可以在运行时使用这些工具从java代码中的JSP文件手动生成HTML 例如,我有Spring和Tiles-手动呈现JSP文件,spring,jsp,tiles,Spring,Jsp,Tiles,我们使用Spring3和ApacheTiles创建在Tomcat7上运行的web应用程序 是否可以在运行时使用这些工具从java代码中的JSP文件手动生成HTML 例如,我有sample.jsp,其中包含一些基于传递模型的内容动态生成的内容。我想将JSP中呈现的HTML存储在String对象中 在非常高的抽象层次上: String renderedHtml=renderHtmlFromJSP(jspName,model); 如果没有,是否可以动态更改瓷砖元素的定义?比如说 <put-at
sample.jsp
,其中包含一些基于传递模型的内容动态生成的内容。我想将JSP中呈现的HTML存储在String对象中
在非常高的抽象层次上:
String renderedHtml=renderHtmlFromJSP(jspName,model);
如果没有,是否可以动态更改瓷砖元素的定义?比如说
<put-attribute name="headerRight" value="dynamically_set_value" />
?这个问题可以与这个问题结合起来: 因此,您的
renderHtmlFromJSP
可以如下所示:
String renderHtmlFromJSP(
String fileName,
???? dataModel,
HttpServletRequest sourceRequest){
//you need emulate response to produce output in string (see bellow)
MyStringResponse resp = new MyStringResponse();
sourceRequest
.getRequestDispatcher("/WEB-INF/header.jsp")
.include(request, resp);
resp.flushBuffer();
return resp.getMyInternalBufferContent();
}
要实现MyStringResponse,请使用override方法并返回ByteArrayOutputStream的实例,此问题可以与此问题结合使用: 因此,您的
renderHtmlFromJSP
可以如下所示:
String renderHtmlFromJSP(
String fileName,
???? dataModel,
HttpServletRequest sourceRequest){
//you need emulate response to produce output in string (see bellow)
MyStringResponse resp = new MyStringResponse();
sourceRequest
.getRequestDispatcher("/WEB-INF/header.jsp")
.include(request, resp);
resp.flushBuffer();
return resp.getMyInternalBufferContent();
}
要实现MyStringResponse,请使用override方法并返回ByteArrayOutputStream的实例