1.0          Other languages
 
 

2.3 HTML 文件目录结构

 
 

VelocityWeb 使用 HTML 文件替代 JSP 作为展现层。HTML 文件可以被放在 WebContent 目录下,然后在部署到应用服务器之前,打包到 EAR 文件里;或者,放在部署文件外面,这样部署后也可以改变这些文件。

一些新闻网站,或者论坛网站,需要经常改变网页外观,每周,或者每月。把 HTML 文件放在部署文件外面,可以较好地应付这种需求。

一般情况下,我们把 HTML 文件放在部署文件里面:

├─src
│  └─org
│
└─WebContent
    ├─html
    │  ├─css
    │  ├─images
    │  ├─js
    │  └─pages
    │      ├─cart
    │      ├─layout
    │      ├─order
    │      ├─product
    │      ├─system
    │      └─user
    ├─META-INF
    └─WEB-INF
        └─lib

推荐的方法,是将所有 HTML 文件,相对于 HTML 根目录,放在同样的目录层次中。以下是一个不好的例子:

│
└─WebContent
    ├─html
    │  └─pages
    │      ├─cart
    │      │      ├─view_cart.htm
    │      │
    │      ├─product
    │      │      ├─new_product
    │      │      │      ├─save_product.htm
	

在上面的例子中,view_cart.htm 和 save_product.htm 中的 CSS 或者图片文件的相对路径并不相同。但是,在应用运行时后,VelocityWeb 只有一个控制器,它将所有网页现在在同一个网页服务器目录下。

在 view_cart.htm 中,可能包含这样的 CSS 链接:

<link href="../../css/style.css" rel="stylesheet" type="text/css">

默认情况下,控制器 servlet 会被配置到 WebContent 下 HTML 文件同样的目录层次。为了让 CSS 生效,需要在 web.xml 中将 servlet 配置到另一个 URL 路径:

   <servlet-mapping>
<servlet-name>ControllerServlet</servlet-name>
<url-pattern>
/html/control/servlet/ControllerServlet
</url-pattern>
</servlet-mapping>

现在,URL

../../css/style.css

会成为

html/css/style.css

这样 CSS 就可以生效了。