我想获得运行JSPX模板的字符串输出,以便我可以javascript-string-escape它并在JS片段中使用它。
https://stackoverflow.com/a/13721859/684934显示了使用普通servlet的方法,但是我担心这个方法可能无法与SpringMVC很好地协作(我的控制器方法实际上并没有接收到请求和响应对象,我的理解是jspx使用自己的模板引擎。)
有没有内置方法可以做到这一点?
我的动机是,我想做Ruby on Rails中的常见做法:重新使用视图部分来绘制ajax调用的结果。
答案 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 --->
它不漂亮,但至少你可以从中获得代码重用。