2016-02-26 42 views
0

我嘗試在我的項目中使用ModelMap,但無法訪問JSP頁面中的ModelMap值。無法從JSP頁面的ModelMap中獲取值

我的調度員servlet.xml中

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
       http://www.springframework.org/schema/aop 
       http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
       http://www.springframework.org/schema/tx 
       http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
       http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-3.0.xsd 
       http://www.springframework.org/schema/mvc 
       http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 
    <bean 
     class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" /> 
    <bean 
     class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"> 
    </bean> 
    <context:component-scan base-package="controller"></context:component-scan> 
    <mvc:annotation-driven /> 

    <!-- Most controllers will use the ControllerClassNameHandlerMapping above, 
     but for the index controller we are using ParameterizableViewController, 
     so we must define an explicit mapping for it. --> 
    <bean id="urlMapping" 
     class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
     <property name="mappings"> 
      <props> 
       <prop key="index.html">indexController</prop> 
      </props> 
     </property> 
    </bean> 

    <bean id="viewResolver" 
     class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property name="viewClass"> 
      <value>org.springframework.web.servlet.view.tiles3.TilesView</value> 
     </property> 
    </bean> 

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

    <!-- The index controller. --> 
    <bean name="indexController" 
     class="org.springframework.web.servlet.mvc.ParameterizableViewController" 
     p:viewName="index" /> 

</beans> 

我tiles.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" template="/WEB-INF/jsp/partical/main.jsp"> 
     <put-attribute name="content" value="/WEB-INF/jsp/partical/index.jsp" /> 
    </definition> 
    <definition name="dangkyphong" template="WEB-INF/jsp/partical/main.jsp"> 
     <put-attribute name="content" value="WEB-INF/jsp/partical/dangkyphong.jsp" /> 
    </definition> 
    <definition name="quanlyphong" template="/WEB-INF/jsp/partical/main.jsp"> 
     <put-attribute name="content" value="/WEB-INF/jsp/partical/quanlyphong.jsp" /> 
    </definition> 
    <definition name="quanlymaytinh" template="/WEB-INF/jsp/partical/main.jsp"> 
     <put-attribute name="content" value="/WEB-INF/jsp/partical/quanlymaytinh.jsp" /> 
    </definition> 
    <definition name="themphong" template="/WEB-INF/jsp/partical/main.jsp"> 
     <put-attribute name="content" value="/WEB-INF/jsp/partical/themphong.jsp" /> 
    </definition> 
    <definition name="themay" template="/WEB-INF/jsp/partical/main.jsp"> 
     <put-attribute name="content" value="/WEB-INF/jsp/partical/themmay.jsp" /> 
    </definition> 
    <definition name="chinhsuapc" template="/WEB-INF/jsp/partical/main.jsp"> 
     <put-attribute name="content" value="/WEB-INF/jsp/partical/chinhsuapc.jsp" /> 
    </definition> 
</tiles-definitions> 

我的項目免費

my project free

我試試這個:

@RequestMapping(method = RequestMethod.GET) 
    public String index(ModelMap mm) { 
     mm.put("title", "Home"); 
     return "index"; 
    } 
在JSP頁面

我嘗試使用:${title}

,但我不能在JSP標題得到一個字符串「家」

請幫我解決這個問題! ----編輯我的JSP頁面----

<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %> 
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <head> 
     <meta charset='utf-8'> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <title>${title}</title> 
     <tiles:insertAttribute name = "head" ignore="true"></tiles:insertAttribute> 
     <link href="${pageContext.request.contextPath}/css/bootstrap.min.css" rel="stylesheet"> 
     <link rel="stylesheet" href="${pageContext.request.contextPath}/css/custom.css" type="text/css" /> 
     <link href="${pageContext.request.contextPath}/css/mui.min.css" rel="stylesheet" type="text/css" /> 

    </head> 
    <body> 
     <div id="sidedrawer" class="navbar-default mui--no-user-select"><a href="${pageContext.request.contextPath}/index.html"> 
       <div id="sidedrawer-brand" class="mui--appbar-line-height mui--text-title">Labs Manager</div></a> 
      <div class="mui-divider"></div> 
      <ul>  
       <strong>Quản Lý Phòng Máy</strong> 
       <ul> 
        <li class="nav-menu"> 
         <a href="${pageContext.request.contextPath}/index/themphong.html"> 
          <span class="small-nav" data-toggle="tooltip" data-placement="right" title="Home"> 
           <span class="glyphicon glyphicon-plus"></span> 
          </span> 
          <span class="full-nav"> Thêm Phòng </span> 
         </a> 
        </li> 
        <li class="nav-menu"> 
         <a href="${pageContext.request.contextPath}/index/dangkyphong.html"> 
          <span class="small-nav" data-toggle="tooltip" data-placement="right" title="About Us"> 
           <span class="glyphicon glyphicon-pencil"></span> 
          </span> 
          <span class="full-nav"> Đăng Ký Phòng </span> 
         </a> 
        </li> 
        <li class="nav-menu"> 
         <a href="${pageContext.request.contextPath}/index/quanlyphong.html"> 
          <span class="small-nav" data-toggle="tooltip" data-placement="right" title="Contact Us"> 
           <span class="glyphicon glyphicon-edit"></span> 
          </span> 
          <span class="full-nav"> Quản Lý Phòng </span> 
         </a> 
        </li> 
       </ul> 
       <strong>Quản Lý Máy Tính</strong> 
       <ul> 
        <li class="nav-menu"> 
         <a href="${pageContext.request.contextPath}/index/themmay.html"> 
          <span class="small-nav" data-toggle="tooltip" data-placement="right" title="Contact Us"> 
           <span class="glyphicon glyphicon-plus"></span> 
          </span> 
          <span class="full-nav"> Thêm Máy</span> 
         </a> 
        </li> 
        <li class="nav-menu"> 
         <a href="${pageContext.request.contextPath}/index/chinhsuapc.html"> 
          <span class="small-nav" data-toggle="tooltip" data-placement="right" title="Contact Us"> 
           <span class="glyphicon glyphicon-edit"></span> 
          </span> 
          <span class="full-nav"> Chỉnh Sửa </span> 
         </a> 
        </li> 
       </ul> 
      </ul> 
     </div> 
     <header id="header"> 
      <div class="mui-appbar mui--appbar-line-height"> 
       <div class="mui-container-fluid"> 
        <a class="sidedrawer-toggle mui--visible-xs-inline-block mui--visible-sm-inline-block js-show-sidedrawer">☰</a> 
        <a class="sidedrawer-toggle mui--hidden-xs mui--hidden-sm js-hide-sidedrawer">☰</a> 
        <span class="mui--text-title mui--visible-xs-inline-block mui--visible-sm-inline-block">Labs Manager</span> 

        <ul class="nav navbar-nav navbar-right"> 

         <li id="user-nav" class="dropdown"> 
          <a href="#" class="dropdown-toggle" data-toggle="dropdown">Hello, Administrator<b class="caret"></b></a> 
          <ul class="dropdown-menu" id="dropdown-menu"> 
           <li><a href="#">Log out</a></li> 
          </ul> 
         </li> 
        </ul> 

       </div> 


      </div> 
     </header> 
     <div id="content-wrapper"> 
      <div class="mui--appbar-height"></div> 
      <div class="mui-container-fluid"> 
       <!-- Main Content --> 

       <tiles:insertAttribute name="content"></tiles:insertAttribute> 
       </div> 
      </div> 
      <footer id="footer"> 
       <div class="mui-container-fluid"> 
        <br> 
        Copyright &COPY; 2016 
       </div> 
      </footer> 
      <script> 
       $(document).ready(function() { 
        $('data-toggle="tooltip"').tooltip(); 
       }); 

      </script> 
      <script src="${pageContext.request.contextPath}/js/jquery-2.1.4.min.js" type="text/javascript"></script> 
     <script src="${pageContext.request.contextPath}/js/bootstrap.min.js" type="text/javascript"></script> 
     <script src="${pageContext.request.contextPath}/js/mui.min.js" type="text/javascript"></script> 
     <script src="${pageContext.request.contextPath}/js/script.js" type="text/javascript"></script> 
    </body> 

</html> 
+0

請發表你的JSP –

+0

@ redflar3請F5頁面看到我更新 –

+0

相同問題:$ {pageContext.request.contextPath}不返回項目名稱 –

回答

0

當使用瓦片的頁面的名稱可以直接從你的地磚xml文件 分配。爲了做到這一點,你需要做以下

在您的定義添加一個名爲標題

<definition name="index" template="/WEB-INF/jsp/partical/main.jsp"> 
    <put-attribute name="title" value="Index" /> 
    <put-attribute name="content" value="/WEB-INF/jsp/partical/index.jsp" /> 
</definition> 

另一個屬性在模板頁(/WEB-INF/jsp/partical/main.jsp)插入title屬性如下

<title><tiles:insertAttribute name="title" /></title> 

無屬性從您的控制器需要,所以請刪除此

mm.put("title", "Home"); 

如果我可以給你的意見,我相信你不使用的全部潛能apache的瓷磚可以提供。

Apache瓦片是一個框架,允許您不復制每個頁面中的代碼。 所以這是你爲網站創建一個基地佈局重要的,那麼你就可以例如僅在身體中的每個頁面

改變給你舉個例子

模板:

<definition name="app.base" template="/WEB-INF/views/template.jsp"> 
     <put-attribute name="title" value="Not Found" /> 
     <put-attribute name="body" value="/WEB-INF/views/body.jsp" /> 
     <put-attribute name="footer" value="/WEB-INF/views/footer.jsp" /> 
     <put-list-attribute name="stylesheets_top"> 
      <add-attribute value="/resources/site/library/bootstrap/bootstrap.min.css" /> 
      <add-attribute value="/resources/site/library/font-awesome/font-awesome.min.css" /> 
     </put-list-attribute> 
     <put-list-attribute name="javascripts_bottom"> 
      <add-attribute value="/resources/js/jquery/jquery-1.12.0.min.js" /> 
      <add-attribute value="/resources/site/library/bootstrap/bootstrap.min.js" /> 
     </put-list-attribute> 
</definition> 

頁擴展模板:

<definition name="home" extends="app.base"> 
     <put-attribute name="title" value="Home" /> 
     <put-attribute name="body" value="/WEB-INF/jsp/home.jsp" /> 
     <put-list-attribute name="stylesheets_top" inherit="true"> 
      <add-attribute value="/resources/site/home/home.css" /> 
     </put-list-attribute> 
     <put-list-attribute name="javascripts_bottom" inherit="true"> 
      <add-attribute value="/resources/site/home/home.js" /> 
     </put-list-attribute> 
</definition> 

的網頁上面會包含父頁面的兩個屬性和子頁面

模板可能是如下

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 


<tiles:importAttribute name="stylesheets_top" /> 
<tiles:importAttribute name="javascripts_bottom" /> 
<!DOCTYPE html> 
<html lang="en"> 

<head> 

<title><tiles:insertAttribute name="title" /></title> 

</head> 
<body> 
    <header> 
     <!-- stylesheets top --> 
     <c:forEach var="css" items="${stylesheets_top}"> 
      <link rel="stylesheet" type="text/css" href="<c:url value="${css}"/>"> 
     </c:forEach> 
    </header> 
    <div class="body"> 

     <tiles:insertAttribute name="body" /> 
    </div> 
    <footer class="footer"> 
     <tiles:insertAttribute name="footer" /> 
    </footer> 

</body> 

<!-- scripts_bottom --> 
<c:forEach var="script" items="${javascripts_bottom}"> 
    <script src="<c:url value="${script}"/>"></script> 
</c:forEach> 

</script> 
</html> 
+0

非常感謝你^^ –