申し訳ありませんが、この質問をより適切に表現する方法がわかりません。
現在、メイン レイアウトで spring mvc "form" taglib アノテーション (およびその他のいくつか) を指定しています。
この場所にこれらの注釈を指定すると、このタイル定義を構成する他のページ フラグメントで同じ注釈を複製する必要がなくなると思います。
しかし、「本体」フラグメントは、そこで注釈を再指定した場合にのみ適切に機能するように「見える」ようです。
e.g.,
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
-
-
-
「mypage」(「masterpage」に基づく)のタイル定義は次のようになります
-
-
-
<definition name="masterpage" template="/WEB-INF/views/masterlayout.jsp">
<put-attribute name="title" value="" type="string"/>
<put-attribute name="header" value="" />
<put-attribute name="leftside" value="" />
<put-attribute name="rightside" value="" />
<put-attribute name="footer" value="" />
</definition>
<definition name="mypage" extends="masterpage">
<put-attribute name="title" value="My Page Title" type="string"/>
<put-attribute name="header" value="/WEB-INF/views/header.jsp" />
<put-attribute name="leftside" value="/WEB-INF/views/leftside.jsp" />
<put-attribute name="rightside" value="/WEB-INF/views/rightside.jsp"/>
<put-attribute name="footer" value="/WEB-INF/views/footer.jsp" />
</definition>
-
-
-
masterlayout.jsp は次のようになります。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>blah blah blah</title>
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/resources/mypage.css" />
</head>
<body>
<div>
<div>
<div id="headerdiv">
<tiles:insertAttribute name="header" />
</div>
<div id="middle">
<div>
<tiles:insertAttribute name="leftside" />
<tiles:insertAttribute name="rightside" />
</div>
</div>
<div id="footerdiv">
<tiles:insertAttribute name="footer" />
</div>
</div>
</div>
</body>
</html>
これが rightside.jsp ページのフラグメントです。現在、taglib を再指定する必要があります (これらがないと、ページは正しく機能しません)。
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<div style="min-height: 550px;">
<div>
<form:form id="form1" modelAttribute="myViewBean" method="post" action="saveForm.html">
<form:errors path="errorMsg" cssClass="error" element="div" />
<div class="clear"></div>
<div>
<div class="label">
<form:label path="email">Email:<em>*</em></form:label>
</div>
<div>
<form:input path="email" size="40" maxlength="256" />
<form:errors path="email" cssClass="error" />
</div>
<div class="clear"></div>
</div>
</form:form>
</div>
</div>