弹簧瓷砖 - 在新窗口中打开

时间:2015-03-31 16:24:51

标签: java jquery spring jsp tiles

在我的应用程序中,我使用的是Spring MVC + tiles + jsp + jquery。

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

  1. 如果结果列表大小为1,则返回" View1"。
  2. 如果结果列表大小大于1,则返回" View2"。
  3. 我通过表单提交调用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"/>
    

    谢谢

1 个答案:

答案 0 :(得分:0)

Spring MVC Tiles Spring为apache tiles框架提供集成支持。因此,我们可以简单地管理应用程序的布局。

<强>弹簧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>