2015-03-31 42 views
0

在我的应用程序中,我使用了Spring MVC + tiles + jsp + jquery。春季瓷砖 - 在新窗口中打开

我的Spring控制器返回两个jsp视图。

  1. 如果结果列表大小为1,则返回“View1”。
  2. 如果结果列表大小大于1,则返回“View2”。

我通过表单提交来调用Spring控制器,我使用了tile,所以返回的视图会自动显示在主体中。

如何在新窗口中打开view2?我不知道我可以在哪里配置这个。

我tiles.xml是这样的:

<definition name="view1" extends="standardLayoutTemplate"> 
    <put-attribute name="body" value="/WEB-INF/jsp/views/screens/view1.jsp" /> 
</definition> 

<definition name="view2" template = "/WEB-INF/jsp/views/screens/view2.jsp"/> 

谢谢

回答

0

Spring MVC的瓷砖Spring提供了apache tiles框架集成支持。所以我们可以简单地管理我们的应用程序的布局。

为spring-servlet.xml

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

tile.xml

<tiles-definitions> 
    <definition name="defaultTemplate" template="/WEB-INF/jsp/layout.jsp"> 
     <put-attribute name="title" value="" /> 
     <put-attribute name="header" value="/WEB-INF/jsp/header.jsp" /> 
     <put-attribute name="menu" value="/WEB-INF/jsp/menu.jsp" /> 
     <put-attribute name="body" value="" /> 
     <put-attribute name="footer" value="/WEB-INF/jsp/footer.jsp" /> 
    </definition>  
</tiles-definitions> 

view.jsp的

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %> 
<tiles:insertDefinition name="defaultTemplate"> 
    <tiles:putAttribute name="body"> 
     <body> . . . . </body> 
    </tiles:putAttribute> 
</tiles:insertDefinition> 

layout.jsp

<style type="text/css"> 
body { 
    margin: 0;  padding: 0; 
    width:100%;  height:100%; 
} 
#container { 
    width:100%; 
}  
#header { 
    width:100%;   height:5%; 
    position:fixed;  background-color:#A0A0A0 ; 
} 
#sidebar { 
    top: 5%;   position:fixed; 
    left:0;   height:90%; 
    width:13%;  background-color:#D0D0D0 ; 
} 
#content { 
    top:5%;   position:fixed; 
    right:0;   height: 90%; 
    width: 87%;  overflow:auto; 
    background-color: white; 
} 
#footer { 
    bottom:0;   position:fixed;  
    width:100%;  height:5%;  
    background-color:#A0A0A0 ; 
} 
</style> 
</head> 
<body> 
<div id="container"> 
    <div id="header"> <tiles:insertAttribute name="header"> </div> 
    <div id="sidebar"><tiles:insertAttribute name="menu"> </div> 
    <div id="content"><tiles:insertAttribute name="body"> </div> 
    <div id="footer"> <tiles:insertAttribute name="footer"> </div> 
</div>