2016-10-20 5 views
0

У меня есть страница с маской плитки Apache с заголовком, меню, телом. В этом макете Обновить весь макет освежает. Я хочу, чтобы заголовок, меню был статичным, и только часть тела должна обновляться.Плитки Обновить только содержание тела

(1)write this tiles configuration into spring xml file. 
    <bean id="viewResolver" class="org.springframework.web.servlet.view.tiles3.TilesViewResolver"/> 

     <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"> 
      <property name="definitions"> 
       <list> 
        <value>/WEB-INF/layouts/layouts.xml</value> 
        <value>/WEB-INF/layouts/views.xml</value> 
       </list> 
      </property> 
     </bean> 

(2)layouts.xml file 
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE tiles-definitions PUBLIC 
     "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" 
     "http://tiles.apache.org/dtds/tiles-config_3_0.dtd"> 
<tiles-definitions> 

    <definition name="DefaultTemplate" template="/WEB-INF/views/template/SiteTemplate.jsp"> 
     <put-attribute name="title"  value="Home" /> 
     <put-attribute name="header" value="/WEB-INF/views/template/header.jsp" /> 
     <put-attribute name="menu"  value="/WEB-INF/views/template/menu.jsp" /> 
     <put-attribute name="body"  value="" /> 
     <put-attribute name="footer" value="/WEB-INF/views/template/footer.jsp" /> 
    </definition> 

</tiles-definitions> 

(3)views.xml 
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE tiles-definitions PUBLIC 
    "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" 
    "http://tiles.apache.org/dtds/tiles-config_3_0.dtd"> 
<tiles-definitions> 

    <definition name="index" extends="DefaultTemplate"> 
     <put-attribute name="body" value="/WEB-INF/views/index.jsp" /> 
    </definition> 

    <definition name="personList" extends="DefaultTemplate"> 
     <put-attribute name="body" value="/WEB-INF/views/personList.jsp" /> 
    </definition> 

</tiles-definitions> 

(4)SiteTemplate.jsp 

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
     pageEncoding="ISO-8859-1"%> 
    <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Spring MVC - Tiles Integration tutorial</title> 
     <link rel="stylesheet" href="resources/css/screen.css" type="text/css" media="screen, projection"></link> 
     <link rel="stylesheet" href="resources/css/print.css" type="text/css" media="print"></link> 
     <!--[if IE]> 
     <link rel="stylesheet" href="resources/css/ie.css" type="text/css" media="screen, projection"> 
     <![endif]--> 
    <style> 
    body{ margin-top:20px; margin-bottom:20px; background-color:#DFDFDF;} 
    </style> 
    </head> 
    <body> 
     <div class="container" style="border: #C1C1C1 solid 1px; border-radius:10px;"> 
      <!-- Header --> 
      <tiles:insertAttribute name="header" /> 
      <!-- Menu Page --> 
      <div class="span-5 border" style="height:400px;background-color:#FCFCFC;"> 
       <tiles:insertAttribute name="menu" /> 
      </div> 
      <!-- Body Page --> 
      <div class="span-19 last"> 
       <tiles:insertAttribute name="body" /> 
      </div> 
      <!-- Footer Page --> 
      <tiles:insertAttribute name="footer" /> 
     </div> 
    </body> 
    </html> 

(5)menu.jsp 

    <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> 
    <ul style="list-style:none;line-height:28px;"> 

     <li><spring:url value="/index" var="homeUrl" htmlEscape="true" /> 
      <a href="${homeUrl}">Home</a> 
     </li> 

     <li><spring:url value="/viewPeson" var="personListUrl" htmlEscape="true" /> 
      <a href="${personListUrl}">Person List</a> 
     </li> 

    </ul> 

(6)same as write footer.jsp and header.jsp for your requirement. 

(7)code for controlller 

    @RequestMapping(value="index") 
     public String index() { 
      return "index"; 
     } 

Есть ли способ, чтобы предотвратить обновление этого заголовка, меню и обновлять только содержимое тела на меню мыши, которые могут быть реализованы с помощью Apache Tiles 3?

+0

, пожалуйста, добавьте свой код к вопросу. – suku

+0

Непонятно, что вы просите. Детали объединены в одну HTML-страницу, так что все они будут обновляться вместе. – Henry

+0

Дорогой Генри Сэр, пожалуйста, проверьте ..... проблема в том, что при щелчке по ссылке меню в целом переписывание макета мне нужно только Body content Обновление файла jsp, пожалуйста, помогите мне любым другим способом. – Satheeshkumar

ответ

0

В файле tiles.xml вы можете создать несколько определений макета. В тех случаях, когда вам нужно изменить тело, вы можете создать базовый макет. Может быть создан второй макет, который затем расширит базовый макет и сделает все необходимые обновления. В этом случае ваше название, заголовок, меню и нижний колонтитул будут одинаковыми, но тело будет другим. Вы можете написать макеты, как, например:

<definition name="DefaultTemplate" template="/WEB-INF/views/template/SiteTemplate.jsp"> 
     <put-attribute name="title"  value="Home" /> 
     <put-attribute name="header" value="/WEB-INF/views/template/header.jsp" /> 
      <put-attribute name="menu"  value="/WEB-INF/views/template/menu.jsp" /> 
      <put-attribute name="body"  value="" /> 
      <put-attribute name="footer" value="/WEB-INF/views/template/footer.jsp" /> 
</definition> 

<defintion name="SecondaryTemplate" extends="DefaultTemplate"> 
    <put-attribute name="body" value="location_of_your_jsp"/> 
</defintion> 

Второй шаблон, расширяет свой первый шаблон, сохраняя все атрибуты из первого шаблона, но обновление атрибута тела с СПЯ, которые вы хотите сослаться на этот конкретный стр.

 Смежные вопросы

  • Нет связанных вопросов^_^