`
happmaoo
  • 浏览: 4507694 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MVC框架视图及页面跳转分析-模板技术

阅读更多
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog01.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>
模板技术是一项非常强大的技术,较之于传统Struts等以推JSP为主的框架,模板技术更加灵活,应用范围更加广泛,你不仅仅可以用来生成Web页面,凡是文本性质的东西,都可以通过模板机制来处理,比如生成Java源代码、配置文件等。模板技术在在其它一些动态语言如PHP、Ruby等得到大量应用,而近年来备受热棒的Rails等框架的页面处理也是基于模板机制,另外我们每天使用的Eclipse工具中,也大量使用到了模板技术,比如自定义代码块等功能。EasyJF开源的Web MVC框架EasyJWeb中的页面输出正是采用模板机制。
模板机制的原理其实比较简单,其实就是准备好一个模板,在模板中添加一些用于可替换的特殊标志,然后在用户使用通过模板引擎,把准备好的数据与模板进行合并处理,就能生成得到我们所期望的内容。
比如,我们有一个html模板内容如下,其中黑体部分是模板的特殊标志,用来作数据替换的:
htmlxmlns="http://www.w3.org/1999/xhtml">
head>
metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
title>html模板title>
head>
body>
h1>${title}h1>
p>${date}p>
body>
html>
当模板引擎在处理的时候,他就会把特殊标志的部分换成具体的数据内容,比如我们如果给title及date分别如下的值:
title="新闻标题"
Date=new Date()
则就会输出类似下面的内容:

htmlxmlns="http://www.w3.org/1999/xhtml">
head>
metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"/>
title>html模板title>
head>

body>
h1>新闻标题h1>
p>ThuNov2920:45:38CST2007p>
body>
html>
通过使用模板技术,你可以用EasyJWeb来生成java代码,比如在EasyJWeb代码生成引擎中的一个生成业务接口的模板内容如下:

publicclass$!...{domainName}ServiceImplimplementsI$!...{domainName}Service...{

privateI$!...{domainName}DAO$!...{domain}Dao;

publicvoidset#upperCase($!...{domain})Dao(I$!...{domainName}DAO$!...{domain}Dao)...{
this.$!...{domain}Dao=$!...{domain}Dao;
}


publicLongadd$!...{domainName}($!...{domainName}$!...{domain})...{
this.$!...{domain}Dao.save($!...{domain});
if($!...{domain}!=null&&$!...{domain}.get$!...{id}()!=null)...{
return$!...{domain}.get$!...{id}();
}

returnnull;
}


public$!...{domainName}get$!...{domainName}(Longid)...{
$
!...{domainName}$!...{domain}=this.$!...{domain}Dao.get(id);
return$!...{domain};
}


publicbooleandel$!...{domainName}(Longid)...{
$
!...{domainName}$!...{domain}=this.get$!...{domainName}(id);
if($!...{domain}!=null)...{
this.$!...{domain}Dao.remove(id);
returntrue;
}

returnfalse;
}


publicbooleanbatchDel$!...{domainName}s(ListSerializable>$!...{domain}Ids)...{

for(Serializableid:$!...{domain}Ids)...{
del$
!...{domainName}((Long)id);
}

returntrue;
}


publicIPageListget$!...{domainName}By(IQueryObjectqueryObject)...{
returnQueryUtil.query(queryObject,$!...{domainName}.class,this.$!...{domain}Dao);
}


publicbooleanupdate$!...{domainName}(Longid,$!...{domainName}$!...{domain})...{
if(id!=null)...{
$
!...{domain}.set$!...{id}(id);
}
else...{
returnfalse;
}

this.$!...{domain}Dao.update($!...{domain});
returntrue;
}


}

你只需传送一个具有id的域对象作为参数,添加到结果集Result中,比如我们传送一个名为Orders的域模型类,就会得到如下的输出:

publicclassOrdersServiceImplimplementsIOrdersService...{

privateIOrdersDAOordersDao;

publicvoidsetOrdersDao(IOrdersDAOordersDao)...{
this.ordersDao=ordersDao;
}


publicLongaddOrders(Ordersorders)...{
this.ordersDao.save(orders);
if(orders!=null&&orders.getId()!=null)...{
returnorders.getId();
}

returnnull;
}


publicOrdersgetOrders(Longid)...{
Ordersorders
=this.ordersDao.get(id);
if(orders!=null)...{
returnorders;
}

returnnull;
}


publicbooleandelOrders(Longid)...{
Ordersorders
=this.getOrders(id);
if(orders!=null)...{
this.ordersDao.remove(id);
returntrue;
}

returnfalse;
}


publicbooleanbatchDelOrderss(ListSerializable>ordersIds)...{

for(Serializableid:ordersIds)...{
delOrders((Long)id);
}

returntrue;
}


publicbooleanremoveOrders(Longid)...{
Ordersorders
=this.getOrders(id);
if(orders!=null)...{
this.ordersDao.remove(id);
returntrue;
}

returnfalse;
}


publicboo
分享到:
评论

相关推荐

    Spring MVC点击链接,跳转到指定页面

    在Spring MVC框架中,网页间的跳转是通过控制器(Controller)处理请求并返回视图(View)来实现的。在给定的场景中,我们有一个简单的应用,用户在`index.jsp`页面上点击一个链接,目标是跳转到`success.jsp`页面。...

    漂亮 TP框架表单提交跳转页面

    标题中的“漂亮 TP框架表单提交跳转页面”指的是使用ThinkPHP(简称TP)框架进行Web开发时,关于表单提交后如何实现页面跳转的一个技术主题。在Web应用中,表单提交是用户与服务器交互的重要方式,而跳转页面则关乎...

    自己手写PHP MVC 框架

    控制器可以处理复杂的逻辑,如验证输入、跳转页面等,避免了视图和模型的直接耦合。 **路由(Routing)**: 路由是MVC框架的关键部分,它负责解析URL并映射到相应的控制器和方法。通过定义路由规则,可以灵活地设置...

    前端框架Bootstrap-MVC

    3. **路由管理**:处理URL映射,根据不同的URL加载对应的视图,简化页面跳转和导航控制。 4. **模块化**:可能支持模块化开发,将项目拆分成多个独立的组件或模块,方便复用和管理。 5. **性能优化**:可能包含了...

    框架---mvc

    在选择和使用MVC框架时,开发者应根据项目需求、团队技术栈和性能要求等因素进行综合考虑,以实现最佳的开发效果。同时,持续的社区反馈和建议对于框架的改进和发展至关重要,鼓励大家积极提出意见和建议,共同推动...

    php mvc技术实现大全

    **PHP MVC技术实现大全** ...它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller...同时,对Smarty模板引擎的了解可以提升视图设计的效率,而对MVC模式误区的了解有助于写出更优质的代码。

    轻量级java web MVC框架

    一个非常简单的MVC框架,实现了类似Spring MVC的基本功能。 1、包括自动扫描绑定映射路径,只要在web.xml中指定扫描包,系统启动后会将请求url绑定到指定的处理方法上。如: 在web.xml中定义如下: &lt;context-param&gt; ...

    基于PHP的Q快速mvc框架for Win.zip

    4. **路由机制**:Q快速MVC框架内置了路由系统,可以根据URL自动匹配控制器和方法,实现URL的美化和更加灵活的页面跳转。 5. **库和插件**:框架通常包含一系列预定义的库和插件,如数据库连接管理、表单验证、会话...

    PHP实例开发源码-禅道php mvc框架.zip

    4. **模板引擎**:为了使视图层更加清晰,禅道可能会提供模板引擎,方便开发者编写复杂的页面布局和样式。 5. **错误处理和日志记录**:良好的错误处理和日志记录功能可以帮助开发者快速定位问题,提升开发效率。 ...

    NET_Web开发震撼之变:.NET_MVC框架

    .NET Web开发领域中,.NET MVC框架是一个至关重要的里程碑,它极大地改变了Web应用程序的设计和开发方式。MVC,即Model-View-Controller,是一种广泛采用的软件设计模式,尤其适用于构建可维护、可扩展和高度分化的...

    Spring MVC框架3个入门例子

    首先,我们来看“Spring MVC框架入门”。这个例子通常会涵盖基本的Spring MVC项目结构,包括`web.xml`配置文件、`DispatcherServlet`的设置以及Spring MVC的配置文件(`servlet-context.xml`)。在`web.xml`中,你需要...

    spring-mvc-documentation-linesh-translation

    - **允许其他MVC实现**: Spring Web MVC 支持与其他MVC框架集成,提供了一种灵活的方式来扩展应用程序的功能。 - **DispatcherServlet**: DispatcherServlet 是 Spring MVC 的核心组件之一,负责接收 HTTP 请求并将...

    SSH框架模板-注解类模板

    在这个“SSH框架模板-注解类模板”中,我们将探讨SSH框架如何与Java注解结合,以简化开发流程。 **Struts2** 是一个基于MVC设计模式的Web应用框架,用于替代Java Servlet API来构建动态网站。在Struts2中,使用注解...

    MVC框架(Struts2)开发租房网站([培训]doc和源代码).rar

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它在Web开发领域中被广泛使用。本项目是北大青鸟的培训课程,旨在通过实践帮助初学者掌握使用Struts2框架开发租房网站的技能。 在...

    自己写的StrutsMVc框架

    在Struts MVC框架中,我们通常会遇到以下几个关键概念和技术: 1. **模型(Model)**:模型层是应用的核心部分,负责处理业务逻辑和数据管理。在Struts中,模型通常由Action类来代表,这些类处理用户请求,与数据库...

    MVC 3.0教程

    - 默认模板包含"主页"、"登录"和"关于"按钮,可体验页面跳转功能。 4. **控制器(Controller)**: - 控制器是处理用户请求的组件,负责协调模型和视图。 - 在MVC 3中,你可以通过右键项目,选择"添加" -&gt; "控制...

    ASP.NET + MVC5 入门完整教程七 -—-- MVC基本工具(下)

    ASP.NET MVC5 是微软开发的一款用于构建动态、数据驱动的Web应用程序的框架,结合了ASP.NET的功能和模型-视图-控制器(MVC)的设计模式。在这个“ASP.NET + MVC5 入门完整教程七——MVC基本工具(下)”中,我们将...

    后台与页面之间的传值以及页面与页面之间的传值

    本文将详细讲解这两种通信方式,并以Spring MVC框架为例进行深入阐述。 一、后台(服务器)与页面(客户端)之间的传值 1. 请求参数传递:在HTTP请求中,可以将数据作为查询参数附在URL后面,或者通过POST请求的...

    忘记struts2 & spring mvc,试用talent mvc

    - 视图解析:介绍Talent MVC支持的视图技术,如模板引擎,以及如何组织和渲染视图。 - 源码分析:深入到Talent MVC的源代码,解析关键类和方法,帮助读者理解框架的工作机制。 - 示例应用:通过`platform-demo`中的...

    前端开源库-mvcx

    - **路由管理**:内置的路由机制帮助开发者轻松定义和管理页面跳转。 **3. 使用MVCx的步骤** 1. 安装MVCx:首先,你需要通过npm(Node.js包管理器)安装MVCx到你的项目中,`npm install mvcx`。 2. 创建项目结构:...

Global site tag (gtag.js) - Google Analytics