0
Struts2 + Freemarker。下面的代碼工作正常,但我想知道任何人都可以更簡化它。我看到重複的代碼來生成HTML標籤。簡化Freemarker條件來製作struts2自定義導航
下面的代碼看起來很多生成自定義菜單,3個鏈接
任何人有什麼更好的解決辦法?
<@s.set var="page" value="com.opensymphony.xwork2.ActionContext.name" />
<@s.url action="home" var="urlHome" />
<@s.url action="about" var="urlAbout" />
<@s.url action="contact" var="urlContact" />
<#if page=='home'>
<@currentPage page="%{urlHome}" title="Home"/>
<@s.a href="%{urlAbout}">About Us</@s.a>
<@s.a href="%{urlContact}">Contact Us</@s.a>
<#elseif page=='about' >
<@s.a href="%{urlHome}">Home</@s.a>
<@currentPage page="%{urlAbout}" title="About Us"/>
<@s.a href="%{urlContact}">Contact Us</@s.a>
<#elseif page=='contact' >
<@s.a href="%{urlHome}">Home</@s.a>
<@s.a href="%{urlAbout}">About Us</@s.a>
<@currentPage page="%{urlContact}" title="Contact Us"/>
<#else>
<@currentPage page="%{urlHome}" title="Home"/>
<@s.a href="%{urlAbout}">About Us</@s.a>
<@s.a href="%{urlContact}">Contact Us</@s.a>
</#if>
宏
<#macro currentPage page title>
<div class="menu-image">
<img src="<@s.url value="/images/on-left.gif"/>"/>
</div>
<div class="on">
<@s.a cssClass="over" href="${page}">${title}</@s.a>
</div>
<div class="menu-image">
<img alt="" src="<@s.url value="/images/on-right.gif"/>"/>
</div>
</#macro>
謝謝。好的一段代碼。讓我嘗試一下,我接受它作爲答案。但是,如果我們使用JSP,應該使用標記文件而不是宏。那是對的嗎?任何建議。我正在使用Struts2 + Tiles +標記文件+ Javatemplate。 – Pirzada
使用標籤是JSP最常用的方法。你不能直接在JSP中使用宏。 –