繁体   English   中英

在Spring中创建可重用的GUI组件

[英]Create reusable GUI components in Spring

我有一个使用Spring MVC的项目,最近我在页面上添加了Apache Tiles的用法。 但是我必须在许多不同的页面上显示model Book 我可以在Spring以某种方式定义Book GUI Component吗? 我想要这样的东西:

我可以这样定义一个GUI Componentbook.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM