- 浏览: 18869 次
- 性别:
- 来自: 北京
文章分类
最新评论
看了下系统框架展示使用的框架tiles,以前也没有深入了解过,开发中总是使用,没想过它的好处。今天抽了点时间看了下,特说明心得:
Tiles 模板是一个一般不包含任何实际内容的布局。它包含一些占位符属性使得页面 URI 和字符串可以在将来被插入。
使用tiles首先要做strust配置文件里引入,
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml/>
<set-property property="definitions-parser-validate" value="true"/>
</plug-in>
2、配置tile使用的模版
<definition name="template.default2"
path="/template/model_no_table.jsp">
<put name="selfscript" value="/indi2exe/common/selfscript.jsp" /> <!-- 默认值 可重载 -->
<put name="title"
value="财政一体化管理信息系统(IFMIS;"
direct="true" />
<put name="mainmenu" value="/template/mainmenu.do" />
<put name="edittree" value="/template/treemenu.do" />
<put name="navigation" value="/template/navigation.do" />
<put name="main" value="/common/_blank.html" />
<put name="showhelp" value="/common/_blank.html" />
</definition>
对于模版页面要按布局进行配置:
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<jsp:directive.page import="java.util.Map;"/>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 6.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<link rel="stylesheet" type="text/css" href="<%=basePath%>/style/<%=gov.mof.fasp.ifmis.common.Globals.IFMIS_SKIN%>_style.css" />
<link rel="stylesheet" id="ifmisfontstyle" type="text/css" href="<%=basePath%>/style/<%=styleName %>" />
<link rel="stylesheet" type="text/css" href="<%=basePath%>/style/<%=gov.mof.fasp.ifmis.common.Globals.IFMIS_LOGO%>_logo.css"/>
<link type="text/css" rel="stylesheet" href="<%=basePath%>/style/jquery.autocomplete.css" />
<link rel="stylesheet" type="text/css" href="<%=basePath%>/style/calendar.css"/>
<script type="text/javascript" src="<%=basePath%>/js/prototype.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/choose.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/tabpage.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/changescroll.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/calendar.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/formatNumber.js"></script>
<script type="text/vbscript" src="<%=basePath%>/js/decode_resource.vbs"></script>
<script type="text/javascript" src="<%=basePath%>/js/ua.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/ftiens4.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/datatable.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/export.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/tbajax.js"></script>
<script type='text/javascript' src='<%=basePath%>/js/zapatec.js'></script>
<script type='text/javascript' src='<%=basePath%>/js/tree.js'></script>
<script type="text/javascript" src="<%=basePath%>/js/template.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/overlib/overlibmws.js" type=text/javascript></SCRIPT>
<script type="text/javascript" src="<%=basePath%>/js/overlib/overlibmws_filter.js" type=text/javascript></SCRIPT>
<script type="text/javascript" src="<%=basePath%>/js/overlib/overlibmws_shadow.js" type=text/javascript></SCRIPT>
<script type="text/javascript" src="<%=basePath%>/js/jquery-1[1].3.1.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/jquery.autocomplete.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/rightButton.js"></script>
<tiles:insert attribute="selfscript"/>
<script type="text/javascript">
var linkvchtypeid = '<%=request.getAttribute("linkvchtypeid")%>';
var ROOT_PATH = '<%=basePath%>';
String.prototype.trim = function(){
return this.replace(/(^\s*)|(\s*$)/g,"");
}
<%
String intranetConfig ="";
if(session.getAttribute("intranetConfig")!="" && session.getAttribute("intranetConfig")!=null){
intranetConfig = session.getAttribute("intranetConfig").toString();
}
%>
function setFont(fontsize){
if(fontsize=="l"){
document.getElementById('ifmisfontstyle').href = '<%=basePath%>/style/stylefontL.css';
setFontSession("stylefontL.css");
}else if(fontsize=="m"){
document.getElementById('ifmisfontstyle').href = '<%=basePath%>/style/stylefontM.css';
setFontSession("stylefontM.css");
}else{
document.getElementById('ifmisfontstyle').href = '<%=basePath%>/style/stylefontS.css';
setFontSession("stylefontS.css");
}
setFontCookie(fontsize);
}
</script>
<title>
<tiles:insert attribute="title" />
</title>
<%
String showAcctsystype = null;
Map hpacctsystype = (Map)session.getAttribute("hpacctsystype");
Object acctsystypeid = session.getAttribute("acctsystype");
if(hpacctsystype != null && acctsystypeid != null){
showAcctsystype = (String)hpacctsystype.get(acctsystypeid.toString()) ;
}
if(showAcctsystype == null){
showAcctsystype = "";
}
String hsagnecy = null;
if(session.getAttribute("hsagencyname") != null){
hsagnecy = "/"+session.getAttribute("hsagencycode").toString()+"-"+session.getAttribute("hsagencyname").toString();
}
String isbudget = "";
if(session.getAttribute("isbudget") != null){
isbudget = session.getAttribute("isbudget").toString();
}
if (showAcctsystype!=null && showAcctsystype!="" && isbudget.equals("2") && hsagnecy != null ){
showAcctsystype += hsagnecy;
}
String currentuseragencyname = "";
if(session.getAttribute("currentuseragency")!=null){
java.util.HashMap currentuseragency = (java.util.HashMap)session.getAttribute("currentuseragency");
currentuseragencyname = currentuseragency.get("name").toString();
}
//单位类型
String agencyType = "";
if(session.getAttribute("currentagencytype")!=null&&session.getAttribute("currentagencytype")!=""){
agencyType = (String)session.getAttribute("currentagencytype");
}
%>
</head>
<body >
<div id="tree_inner" oncontextmenu="return false;"></div>
<div id="window_top" >
<div id="top" >
<div id="logo">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<th rowspan="2" nowrap="nowrap"></th>
<td nowrap="nowrap">
<%-- <div><a title="显示版本信息" href="<%=basePath%>/version/index.html"><img src="../images/actions/version.gif" width="16" height="16" border="0"/> 版本</a></div>--%>
<div><a title="退出" href="<%=basePath%>/logout.do"><img src="<%=basePath%>/images/actions/exit.gif" width="16" height="16" border="0"/> 退出 </a></div><div class="w_gang"></div>
<div><a title="返回首页" href="<%=basePath%>/common/index.do"><img src="<%=basePath%>/images/actions/house.gif" width="16" height="16" /> 首页</a></div><div class="w_gang"></div>
<div><img src="<%=basePath%>/images/actions/font_size.gif" width="16" height="16" border="0" title="字号" /><a href="#" onclick="setFont('l')">大</a><a href="#" onclick="setFont('m')"> 中</a><a href="#" onclick="setFont('s')"> 小</a></div><div class="w_gang"></div>
<%
//启用ca 后不在一体化系统中修改密码 20100107
String isportalca = "fasle" ;
if (session.getAttribute("isportalca")!=null ) isportalca = (String)session.getAttribute("isportalca");
if(isportalca.equalsIgnoreCase("false")) {%>
<div><a title="修改密码" href="<%=basePath%>/portal/login/mod_password.jsp" target="_blank"><img src="<%=basePath%>/images/actions/mod_pwd.gif" width="16" height="16" border="0"/> 修改密码</a></div><div class="w_gang"></div>
<% } %>
<% if(intranetConfig!=null&&intranetConfig!=""){%>
<div><a title="进入内网" href="<%=intranetConfig%>"><img src="<%=basePath%>/images/actions/go_innerNet.gif" width="16" height="16" /> 内网</a></div><div class="w_gang"></div>
<%} %>
<div class="w_head"></div>
<td width="6" nowrap="nowrap" class="w_right"> </td>
</tr>
<tr>
<td nowrap="nowrap" class="welcomeA">
<% if(agencyType!=null&&agencyType!=""){%>
<c:out value="${sessionScope.currentagencytype}"/>:<c:out value="${sessionScope.currentuseragency.name}"/>
<%}else if(currentuseragencyname!=null && currentuseragencyname!=""){%>
单位:<c:out value="${sessionScope.currentuseragency.name}"/>
<%} %>
<%if (showAcctsystype!=null && showAcctsystype!=""){%>
账套:<%=showAcctsystype%>
<% } %>
用户:<c:out value="${sessionScope.currentuser.name}"/>
<% if(agencyType!=null&&agencyType!=""){%>日期:<%}else{%>系统日期:<%}%>
<span id=cdate>
<% java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd");
out.println(formatter.format(new java.util.Date()));
%></span></td>
<td nowrap="nowrap"> </td>
</tr>
</table>
</div>
<div id="menu">
<tiles:insert attribute="mainmenu"/>
</div>
</div>
</div>
<div id="hidden_top" align="center" ><span id="hiddenTopBar" title="隐藏上部" onClick="doHiddenTop(this)"></span></div>
<div style="position:relative;background-color:#CCCCCC; overflow:hidden;height:expression(this.offsetParent.offsetHeight-window_top.offsetHeight-hidden_top.offsetHeight-10);">
<div id="left_tree" style="display:block; height:expression(this.offsetParent.offsetHeight-25); overflow-y:scroll">
<tiles:insert attribute="edittree"/></div>
<div id="switchBar" style="display:block; height:expression(this.offsetParent.style.height); overflow:hidden">
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center"><span id="hiddenLeftBar" title="隐藏左侧树" onClick="doHiddenLeft(this)"></span></td>
</tr>
</table>
</div>
<tiles:insert attribute="selfscript"/>
<div id="main" style="display:block; height:expression(this.offsetParent.style.height);">
<tiles:insert attribute="navigation"/>
<div id ="context">
<tiles:insert attribute="main"/>
<tiles:insert attribute="showhelp"/>
</div>
</div>
</div>
</body>
</html>
在模版文件中tiles使用的语法为
<tiles:insert attribute="****"/>
attribute的属性为模版站位符,可以动态放置不同的页面。
Tiles 模板是一个一般不包含任何实际内容的布局。它包含一些占位符属性使得页面 URI 和字符串可以在将来被插入。
使用tiles首先要做strust配置文件里引入,
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml/>
<set-property property="definitions-parser-validate" value="true"/>
</plug-in>
2、配置tile使用的模版
<definition name="template.default2"
path="/template/model_no_table.jsp">
<put name="selfscript" value="/indi2exe/common/selfscript.jsp" /> <!-- 默认值 可重载 -->
<put name="title"
value="财政一体化管理信息系统(IFMIS;"
direct="true" />
<put name="mainmenu" value="/template/mainmenu.do" />
<put name="edittree" value="/template/treemenu.do" />
<put name="navigation" value="/template/navigation.do" />
<put name="main" value="/common/_blank.html" />
<put name="showhelp" value="/common/_blank.html" />
</definition>
对于模版页面要按布局进行配置:
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<jsp:directive.page import="java.util.Map;"/>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 6.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<link rel="stylesheet" type="text/css" href="<%=basePath%>/style/<%=gov.mof.fasp.ifmis.common.Globals.IFMIS_SKIN%>_style.css" />
<link rel="stylesheet" id="ifmisfontstyle" type="text/css" href="<%=basePath%>/style/<%=styleName %>" />
<link rel="stylesheet" type="text/css" href="<%=basePath%>/style/<%=gov.mof.fasp.ifmis.common.Globals.IFMIS_LOGO%>_logo.css"/>
<link type="text/css" rel="stylesheet" href="<%=basePath%>/style/jquery.autocomplete.css" />
<link rel="stylesheet" type="text/css" href="<%=basePath%>/style/calendar.css"/>
<script type="text/javascript" src="<%=basePath%>/js/prototype.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/choose.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/tabpage.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/changescroll.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/calendar.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/formatNumber.js"></script>
<script type="text/vbscript" src="<%=basePath%>/js/decode_resource.vbs"></script>
<script type="text/javascript" src="<%=basePath%>/js/ua.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/ftiens4.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/datatable.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/export.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/tbajax.js"></script>
<script type='text/javascript' src='<%=basePath%>/js/zapatec.js'></script>
<script type='text/javascript' src='<%=basePath%>/js/tree.js'></script>
<script type="text/javascript" src="<%=basePath%>/js/template.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/overlib/overlibmws.js" type=text/javascript></SCRIPT>
<script type="text/javascript" src="<%=basePath%>/js/overlib/overlibmws_filter.js" type=text/javascript></SCRIPT>
<script type="text/javascript" src="<%=basePath%>/js/overlib/overlibmws_shadow.js" type=text/javascript></SCRIPT>
<script type="text/javascript" src="<%=basePath%>/js/jquery-1[1].3.1.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/jquery.autocomplete.js"></script>
<script type="text/javascript" src="<%=basePath%>/js/rightButton.js"></script>
<tiles:insert attribute="selfscript"/>
<script type="text/javascript">
var linkvchtypeid = '<%=request.getAttribute("linkvchtypeid")%>';
var ROOT_PATH = '<%=basePath%>';
String.prototype.trim = function(){
return this.replace(/(^\s*)|(\s*$)/g,"");
}
<%
String intranetConfig ="";
if(session.getAttribute("intranetConfig")!="" && session.getAttribute("intranetConfig")!=null){
intranetConfig = session.getAttribute("intranetConfig").toString();
}
%>
function setFont(fontsize){
if(fontsize=="l"){
document.getElementById('ifmisfontstyle').href = '<%=basePath%>/style/stylefontL.css';
setFontSession("stylefontL.css");
}else if(fontsize=="m"){
document.getElementById('ifmisfontstyle').href = '<%=basePath%>/style/stylefontM.css';
setFontSession("stylefontM.css");
}else{
document.getElementById('ifmisfontstyle').href = '<%=basePath%>/style/stylefontS.css';
setFontSession("stylefontS.css");
}
setFontCookie(fontsize);
}
</script>
<title>
<tiles:insert attribute="title" />
</title>
<%
String showAcctsystype = null;
Map hpacctsystype = (Map)session.getAttribute("hpacctsystype");
Object acctsystypeid = session.getAttribute("acctsystype");
if(hpacctsystype != null && acctsystypeid != null){
showAcctsystype = (String)hpacctsystype.get(acctsystypeid.toString()) ;
}
if(showAcctsystype == null){
showAcctsystype = "";
}
String hsagnecy = null;
if(session.getAttribute("hsagencyname") != null){
hsagnecy = "/"+session.getAttribute("hsagencycode").toString()+"-"+session.getAttribute("hsagencyname").toString();
}
String isbudget = "";
if(session.getAttribute("isbudget") != null){
isbudget = session.getAttribute("isbudget").toString();
}
if (showAcctsystype!=null && showAcctsystype!="" && isbudget.equals("2") && hsagnecy != null ){
showAcctsystype += hsagnecy;
}
String currentuseragencyname = "";
if(session.getAttribute("currentuseragency")!=null){
java.util.HashMap currentuseragency = (java.util.HashMap)session.getAttribute("currentuseragency");
currentuseragencyname = currentuseragency.get("name").toString();
}
//单位类型
String agencyType = "";
if(session.getAttribute("currentagencytype")!=null&&session.getAttribute("currentagencytype")!=""){
agencyType = (String)session.getAttribute("currentagencytype");
}
%>
</head>
<body >
<div id="tree_inner" oncontextmenu="return false;"></div>
<div id="window_top" >
<div id="top" >
<div id="logo">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<th rowspan="2" nowrap="nowrap"></th>
<td nowrap="nowrap">
<%-- <div><a title="显示版本信息" href="<%=basePath%>/version/index.html"><img src="../images/actions/version.gif" width="16" height="16" border="0"/> 版本</a></div>--%>
<div><a title="退出" href="<%=basePath%>/logout.do"><img src="<%=basePath%>/images/actions/exit.gif" width="16" height="16" border="0"/> 退出 </a></div><div class="w_gang"></div>
<div><a title="返回首页" href="<%=basePath%>/common/index.do"><img src="<%=basePath%>/images/actions/house.gif" width="16" height="16" /> 首页</a></div><div class="w_gang"></div>
<div><img src="<%=basePath%>/images/actions/font_size.gif" width="16" height="16" border="0" title="字号" /><a href="#" onclick="setFont('l')">大</a><a href="#" onclick="setFont('m')"> 中</a><a href="#" onclick="setFont('s')"> 小</a></div><div class="w_gang"></div>
<%
//启用ca 后不在一体化系统中修改密码 20100107
String isportalca = "fasle" ;
if (session.getAttribute("isportalca")!=null ) isportalca = (String)session.getAttribute("isportalca");
if(isportalca.equalsIgnoreCase("false")) {%>
<div><a title="修改密码" href="<%=basePath%>/portal/login/mod_password.jsp" target="_blank"><img src="<%=basePath%>/images/actions/mod_pwd.gif" width="16" height="16" border="0"/> 修改密码</a></div><div class="w_gang"></div>
<% } %>
<% if(intranetConfig!=null&&intranetConfig!=""){%>
<div><a title="进入内网" href="<%=intranetConfig%>"><img src="<%=basePath%>/images/actions/go_innerNet.gif" width="16" height="16" /> 内网</a></div><div class="w_gang"></div>
<%} %>
<div class="w_head"></div>
<td width="6" nowrap="nowrap" class="w_right"> </td>
</tr>
<tr>
<td nowrap="nowrap" class="welcomeA">
<% if(agencyType!=null&&agencyType!=""){%>
<c:out value="${sessionScope.currentagencytype}"/>:<c:out value="${sessionScope.currentuseragency.name}"/>
<%}else if(currentuseragencyname!=null && currentuseragencyname!=""){%>
单位:<c:out value="${sessionScope.currentuseragency.name}"/>
<%} %>
<%if (showAcctsystype!=null && showAcctsystype!=""){%>
账套:<%=showAcctsystype%>
<% } %>
用户:<c:out value="${sessionScope.currentuser.name}"/>
<% if(agencyType!=null&&agencyType!=""){%>日期:<%}else{%>系统日期:<%}%>
<span id=cdate>
<% java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd");
out.println(formatter.format(new java.util.Date()));
%></span></td>
<td nowrap="nowrap"> </td>
</tr>
</table>
</div>
<div id="menu">
<tiles:insert attribute="mainmenu"/>
</div>
</div>
</div>
<div id="hidden_top" align="center" ><span id="hiddenTopBar" title="隐藏上部" onClick="doHiddenTop(this)"></span></div>
<div style="position:relative;background-color:#CCCCCC; overflow:hidden;height:expression(this.offsetParent.offsetHeight-window_top.offsetHeight-hidden_top.offsetHeight-10);">
<div id="left_tree" style="display:block; height:expression(this.offsetParent.offsetHeight-25); overflow-y:scroll">
<tiles:insert attribute="edittree"/></div>
<div id="switchBar" style="display:block; height:expression(this.offsetParent.style.height); overflow:hidden">
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center"><span id="hiddenLeftBar" title="隐藏左侧树" onClick="doHiddenLeft(this)"></span></td>
</tr>
</table>
</div>
<tiles:insert attribute="selfscript"/>
<div id="main" style="display:block; height:expression(this.offsetParent.style.height);">
<tiles:insert attribute="navigation"/>
<div id ="context">
<tiles:insert attribute="main"/>
<tiles:insert attribute="showhelp"/>
</div>
</div>
</div>
</body>
</html>
在模版文件中tiles使用的语法为
<tiles:insert attribute="****"/>
attribute的属性为模版站位符,可以动态放置不同的页面。
相关推荐
这些文件"tiles-api-2.0.6.jar"、"tiles-core-2.0.6.jar"和"tiles-jsp-2.0.6.jar"是Apache Tiles框架的特定版本(2.0.6)的组件,它们用于构建复杂的Web应用页面布局。Apache Tiles是一个强大的视图层框架,它允许...
Struts-Tiles是Apache Struts框架的一个重要组成部分,主要用于构建Web应用中的页面布局和复合组件。这个框架使得开发者能够创建可重用、可配置的页面模板,极大地提高了开发效率和代码的可维护性。 首先,我们需要...
Tiles框架是一种用于构建Web应用程序布局的强大工具,它允许开发者将页面分解为可重用的组件,这些组件可以组合成一个完整的视图。SpringMVC是一个流行的Java Web开发框架,用于处理HTTP请求和响应。在本教程中,...
"tiles2.1.2前端框架"是一种基于Java的网页布局解决方案,主要用于构建和管理复杂的Web应用程序界面。这个框架在描述中被誉为“非常适合管理类页面架构”,意味着它特别适合那些需要有组织、可重用和模块化页面结构...
### Struts 中 Tiles 标签详解 #### 一、引言 在Web开发领域,尤其在使用Struts框架时,为了提高代码复用性及页面布局的灵活性,开发者经常使用到一个非常有用的工具——Tiles框架。Tiles框架允许我们通过组合可...
### Spring结合Tiles框架详解 #### 一、Spring与Tiles框架简介 **Spring**是一个轻量级的Java开发框架,主要用于简化企业级应用的开发过程。它提供了强大的依赖注入(DI)功能,使得开发者能够轻松地管理和组织...
Struts2是一个强大的Java web应用程序框架,而Tiles是用于构建MVC(模型-视图-控制器)架构的一个视图组件库。将Tiles与Struts2结合使用,可以更有效地管理和组织网页布局,实现复杂的页面结构和重用内容。在本篇...
在探讨“Struts2 tiles操作例子”这一主题时,我们首先需要理解Struts2框架以及tiles插件在其中扮演的角色。Struts2是Apache软件基金会赞助的一个开源Web应用框架,它基于MVC(Model-View-Controller)设计模式,...
Tiles 2.0 是一个流行的Java Web开发框架的一部分,它主要用于构建动态网页应用中的视图层。这个jar包是Tiles框架的一个版本,用于帮助开发者更好地组织和管理网页模板。Tiles框架最初是Apache Struts项目的一部分,...
本篇文章将深入探讨“cesium的3D Tiles转换工具”,以及如何将.OBJ模型转换为3D Tiles格式。 首先,.OBJ是一种常见的3D模型文件格式,由Wavefront Technologies开发,用于存储包括几何信息、纹理坐标等在内的三维...
【标题】"tiles+servlet简单例子"涉及到的技术是Tiles框架与Servlet的结合使用。Tiles全称为Tiles2,是Apache Struts项目的一部分,但它也可以独立于Struts使用。这个例子展示了如何在不依赖Struts的情况下,利用...
### Tiles配置文件详解 #### 一、Tiles框架概述 **Tiles**框架是为了解决Web应用中的页面布局问题而设计的一种轻量级解决方案。它主要应用于MVC(Model-View-Controller)架构中的视图层,尤其适用于使用Struts...
### Struts2.0 整合 Tiles 配置详解 #### 一、概述 Struts2框架是基于Java的企业级Web应用开发框架之一,而Tiles则是一个用来组织页面布局的强大工具。将Struts2与Tiles结合使用,可以更加灵活地管理页面结构,实现...
Struts Tiles框架是Java Web开发中的一个重要组成部分,主要用于构建可重用和模块化的Web应用程序页面布局。这个框架允许开发者将一个大的页面分解成多个小的、独立的部分,这些部分可以被单独设计、测试和重用,...
Struts1中的Tiles标签库是一种强大的布局管理工具,旨在提高Web应用的可重用性、可扩展性和可维护性。Tiles框架是Apache Software Foundation发起的一个开源项目,它为开发者提供了创建复合式网页的能力,允许在运行...
**Spring MVC 3 与 Tiles 框架整合** 在Web开发中,Spring MVC和Tiles是两个非常重要的组件。Spring MVC作为一个强大的MVC框架,负责处理应用的业务逻辑和视图展示,而Tiles则是一个视图层框架,主要用于页面布局和...
【标题】"tiles框架包"涉及的核心是Tiles框架,它是一个用于构建Web应用程序视图的MVC(模型-视图-控制器)组件。Tiles的主要功能是将页面布局拆分为多个可重用的部分,称为“瓷砖”,从而提高了网页设计的效率和可...
SpringMVC4与Tiles3整合教程 在Java Web开发中,SpringMVC作为一个强大的MVC框架,被广泛用于构建后端逻辑,而Tiles3则是一个视图层框架,主要用于页面布局和组合。将两者整合可以使得应用的视图管理更加灵活高效。...
2. **配置Tiles**:在Spring MVC的配置文件(如`tiles-context.xml`)中,需要配置Tiles的视图解析器`TilesViewResolver`,以及相关的`TilesConfigurer`,设置Tiles的配置文件路径。 3. **创建Tiles配置文件**:...
Apache Tiles3 是一个强大的视图框架,用于构建和管理网页应用中的页面布局。它允许开发者定义页面模板,然后通过组合这些模板来创建复杂的页面结构。Spring MVC 是一款流行的基于模型-视图-控制器(MVC)设计模式的...