在Spring MVC中操作JSP模板输出

时间:2014-04-19 05:48:50

标签: spring-mvc jspx

我想获得运行JSPX模板的字符串输出,以便我可以javascript-string-escape它并在JS片段中使用它。

https://stackoverflow.com/a/13721859/684934显示了使用普通servlet的方法,但是我担心这个方法可能无法与SpringMVC很好地协作(我的控制器方法实际上并没有接收到请求和响应对象,我的理解是jspx使用自己的模板引擎。)

有没有内置方法可以做到这一点?

我的动机是,我想做Ruby on Rails中的常见做法:重新使用视图部分来绘制ajax调用的结果。

1 个答案:

答案 0 :(得分:1)

它比Rails更加冗长,需要额外的文件,但你可以使用标签完成同样的事情。

partial.tagx

<jsp:root params...>
   <jsp:directive.attribute name="arg1" params.../>
   <jsp:directive.attribute name="arg2" params.../>
   <jsp:directive.attribute name="arg3" params.../>
   <!--- etc --->

   <!--- partial content --->
</jsp:root>

然后您可以重复使用部分内容。只是部分:

partial.jspx

<jsp:root params...>
   <myprefix:partial arg1="..." arg2="..." arg3="..." otherparams="..."/>
</jsp:root>

然后您可以使用常规控制器功能。您可以在视图中使用:

view.jspx

<!--- Other view content --->
<div class="somewhere">
   <myprefix:partial arg1="..." arg2="..." arg3="..." otherparams="..."/>
</div>
<!--- Other view content --->

它不漂亮,但至少你可以从中获得代码重用。