[英]Create reusable GUI components in Spring
我有一个使用Spring MVC
的项目,最近我在页面上添加了Apache Tiles
的用法。 但是我必须在许多不同的页面上显示model Book
。 我可以在Spring
以某种方式定义Book GUI Component
吗? 我想要这样的东西:
我可以这样定义一个GUI Component
: book.viewcomponent
<h1>${book.title}</h1>
<span>${book.summary}</span>
通过传递model
对象booklist.jsp来使用此组件的第一页
<!--some import to let me insert with prefix:"insert"-->
<html>
<head>...</head>
<body>
<insert page="book.jsp" model="${book}">
</body>
</html>
通过传递model
对象morebooks.jsp来使用该组件的第二页
<!--some import to let me insert with prefix:"insert"-->
<html>
<head>...</head>
<body>
<insert page="book.jsp" model="${book}">
</body>
</html>
我认为您可以使用include或tags做到这一点。 包括:
<!-- There's a book in the request -->
<jsp:include page="book.jsp" />
在这种情况下,如果book.jsp文件中包含${book.title}
的内容,则在包含片段之前,请求中必须存在一个名为“ book”的Book对象。
有了标签 ,它就更加正式了。 您需要将标记及其参数定义写入文件中。 以下是您的book.tagx
标记,例如WEB-INF/tags/mytags
:
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
<jsp:directive.attribute name="book" type="your.package.Book" required="true" />
<h1>${book.title}</h1>
<span>${book.summary}</span>
</jsp:root>
然后,您可以导入此标记,添加引用其保存位置的名称空间:
xmlns:mytags="urn:jsptagdir:/WEB-INF/tags/mytags"
最后使用它:
<mytags:book book="${book}" />
如您所见,此处将参数传递给标记,而不是在请求中隐式传递。
有关创建标签的更多信息: https : //docs.oracle.com/cd/E19316-01/819-3669/6n5sg7b5m/index.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.