Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring和Tiles-手动呈现JSP文件_Spring_Jsp_Tiles - Fatal编程技术网

Spring和Tiles-手动呈现JSP文件

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

我们使用Spring3和ApacheTiles创建在Tomcat7上运行的web应用程序

是否可以在运行时使用这些工具从java代码中的JSP文件手动生成HTML

例如,我有
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的实例