在 Spring 中创建可重用的 GUI 组件
Create reusable GUI components in Spring
我有一个使用 Spring MVC
的项目,我最近在我的页面上添加了 Apache Tiles
的使用。但是我一个 model Book
我必须在很多不同的页面上显示。我可以在 Spring
中以某种方式定义一本书 GUI Component
吗?我想要这样的东西:
A 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>
我认为您可以使用包含或标签来做到这一点。包括:
<!-- 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
我有一个使用 Spring MVC
的项目,我最近在我的页面上添加了 Apache Tiles
的使用。但是我一个 model Book
我必须在很多不同的页面上显示。我可以在 Spring
中以某种方式定义一本书 GUI Component
吗?我想要这样的东西:
A 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>
我认为您可以使用包含或标签来做到这一点。包括:
<!-- 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