Web Application Framework
文章平均质量分 78
慢游
这个作者很懒,什么都没留下…
展开
-
MVC框架中的模型-视图分离问题(三) —— 分离原动力
<br /> 采用模板引擎最主要的原因就是同时从意图和机制的角度将逻辑和数据计算从它们的显示中分离出来。在网站开发中,概略地说,这意味着同时满足HTML中无代码和代码中无HTML。下面列举了为什么程序员和美工需要这种分离的八大理由:<br /> <br />1. 封装性(encapsulation):所有与站点的表现相关的都包含在模板中,所有业务逻辑则被放置在数据模型中。每种都是一个完整的实体。<br />2. 明确性(clarity):一个模板不是一个产生HTML页面的程序,而是一个HTML文件,能翻译 2011-02-15 09:03:00 · 2488 阅读 · 0 评论 -
总结MVC中push和pull的区别
讨论MVC框架中的push和pull机制,主要是理一下MVC中View和Controller之间的关系。到底push和pull有什么区别?由于不同MVC框架的具体实现不同,这个问题还没有统一的答案。这儿总结了几篇文章[1-3]及其评论中的主要观点,做成表格列举如下。 PushPullController解释用户行为,产生相应的data并推原创 2012-11-22 15:22:30 · 4367 阅读 · 0 评论 -
JSP, Struts, JSTL——Java开发框架下的模板语言
前文 几句话理解Struts, JSP & Servlet 回顾了Java开发框架的几种基本技术,基本涵盖了前后端的实现。这儿就重点记录一下这几种技术都是怎么支持模板语言的。之前提到了在Servlet中,为了产生动态Web页面,需要将HTML代码嵌入到Java代码中。这种方法随后就因效率太低,太难维护而被抛弃了。取而代之的就是JSP倡导的将Java代码嵌入到HTML代码中。而这种方法大原创 2012-02-02 21:53:46 · 2404 阅读 · 0 评论 -
几句话理解Struts, JSP & Servlet
之前在 当Struts taglib遇上Java Bean 一文中介绍了Struts和Java Bean之间的一个小问题,这会儿却是来从头回顾一下Struts, JSP和Servlet的相关概念。去年的这个时候,当时在使用Java开发Web应用之前,还通过 MVC框架中的模型-视图分离问题 一系列文章分析了MVC框架中的分离相关问题。匆匆一年过去,就当做是对使用Struts的一些总结吧。原创 2012-02-01 21:48:28 · 1113 阅读 · 0 评论 -
当Struts taglib遇上Java Bean
习惯了强大的Django template系统,再回归到Struts Taglib,难免会觉得束手束脚。Struts taglib提供了4种tag:Bean,HTML,Logic和Nested,具体介绍见[1]。用法很简单,网上有大量的例子。这儿说说当用Struts Taglib引用Java Bean生成的数据结构时,碰到的一个有趣的问题。废话少说,上例子。 TestBean.java:一原创 2011-07-25 21:24:04 · 2930 阅读 · 0 评论 -
两种方法在Django框架中支持后台返回包含中文的JSON/数组格式
去年因缘际会,和Django接触了有半年时间。Django有开发快速、语言简洁的特点,对于web前端开发人员来说,其官方的模板系统也是尽量做到逻辑与显示分离的典型例子。 在开发的期间,也积累了一些这方面的经验。一个印象比较深的例子就是如何支持后台返回包含中文的JSON/数组格式。和想象中不一样,在后台用Python定义的JSON或数组,直接当作response传回前台后,JavaScri原创 2011-02-21 21:14:00 · 25164 阅读 · 2 评论 -
MVC框架中的模型-视图分离问题(五) —— 分离之评测
下面的框架评测主要来源于《Enforcing Strict Model-View Separation in Template Engines》[1],由于本人对其中的框架没有实际使用过,因此只是概略地列出评测结果。在下节中我会继续根据自己的经验讨论别的框架,也会尝试列出判断的证据。希望随着自身经验的丰富,这个系列也能继续下去。 表格中,打叉表示对应的框架违反了对应的分离规则。打勾越多,表示该框架的模型-视图混淆得越厉害。而分离和混淆的好处和坏处,本系列的第三节《MVC框架中的模型-视翻译 2011-02-17 09:45:00 · 1186 阅读 · 0 评论 -
MVC框架中的模型-视图分离问题(二) —— 问题产生之所在
模板引擎[1](template engine)是web模板系统[2](web template system)的核心部件,主要功能是将web模板[3](web templates)和内容信息整合到一起产生web文档。示意图如下: 图1: web模板系统示意[1] 下面以基于Java的引擎为例说明模板引擎的历史演变。当然涉及的概念同样可以被应用到其他语言的引擎上,比如Perl, VisualBasic。主要内容翻译自《Enforcing Strict Model-View Sepa翻译 2011-02-14 11:28:00 · 1572 阅读 · 0 评论 -
MVC框架中的模型-视图分离问题(一) —— “你必将业务逻辑由显示中分离”
<br /> 说到MVC[1](Model-View-Controller,模型-视图-控制器),应该说是这些年进行web动态网页开发最“给力”的框架了。而基于MVC的web应用框架[2](web application framework)也多如繁星。具体到开发某个web项目,就涉及到选择什么样的应用框架实现最适合。网上有大量关于如何选择MVC框架的优秀文章,这儿就不多加讨论了。<br /> 本文关注的是MVC中一个小而关键的问题,那就是模型-视图的分离(Model-View Separati原创 2011-02-13 21:18:00 · 3781 阅读 · 0 评论 -
MVC框架中的模型-视图分离问题(四) —— 五大分离原则
<br />1. 视图不能通过下述两种方式修改模型:直接改变模型数据对象,以及调用模型的方法(会引起副作用)。也就是说,模板可以访问模型数据或调用方法,但这些访问必须是无副作用的。这条规则出现的部分原因是数据访问必须是序列无关的(order-insensitive)。<br />2. 视图不能对非独立数据的值(dependent data values)进行计算。因为这样的计算将来有可能会变。任何情况下这种计算应该被封装在模型中。比如说,视图不能像这样计算图书的价格“$price*.90翻译 2011-02-16 13:40:00 · 2800 阅读 · 0 评论 -
用Struts2+Dojo实现文件下载
介绍Struts2 + Dojo是目前非常通用的Web应用开发组合。文件下载则是非常老的一个功能了。现在就介绍一下如何用Struts2+ Dojo 1.7.3实现文件下载的功能。 前端:初始化Dojo,创建下载按钮,实现点击下载事件test.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" p原创 2013-11-20 17:00:00 · 3163 阅读 · 1 评论