最初设想采用 MVC 的时候只知道大名鼎鼎的 struts,就在这里提出考虑使用 struts。
随着进一步的研究发现 struts 通过集中转发机制建立的全局 C - Control 并不很实用,
“具体实现起来,可能复杂程度和开销的增加会大于可见的得益”。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1000165
struts 的 V - View 部分,象.NET 的 Web Control那样,在 HTML Tag 上再套上一层,
失去很多透明性,目前觉得也没有多大意思。V 部分我一向主张用 XSLT。
这时适逢 JSTL 1.0 (标准TagLib) 发布。让我看到网页级(非全局)MVC 的曙光。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=995899
下面这个就是一个典型的练功场网页程序: dispprj.jsp
<%@page contentType="text/html;charset=gb2312" pageEncoding="gb2312"%>
<%@ taglib prefix="lgc" uri="http://www.richsearch.com/taglibs/lgc" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/ea/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jstl/ea/xml" %>
<lgc:useAdapter id="pm" action="display" adapter="com.delphibbs.lgc.adapter.ProjectAdapter"/>
<c:set var="xslt">
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl
utput method="html" encoding="gb2312"/>
<c:import url="xsl/layout.xsl" charEncoding="gb2312"/>
<c:import url="xsl/dispprj.xsl" charEncoding="gb2312"/>
</xsl:stylesheet>
</c:set>
<x:transform xsltText="${xslt}" xmlText="${pm.xml}"/>
这个 JSP 本身是个网页级的 C,它控制了 M (也就是 adapter) 操作数据库,返回 xml,
接着它控制了 XSL 的合成,最后转化得到 html。
下次有时间,给大家介绍一下 Module 部分的 adapter 的实现。