第 7 章 ClearWork应用架构——Web层

MVC Controller and View Layer

7.1. Apache Struts支持

MVC Controller Layer

ClearWork的Struts配置文件位于classpath中, 随系统启动自动随需载入,不需要在配置文件中显示指定,需要在 web.xml 中进行如下配置:

				
	<!--
		- 自动载入位于:
		- ClearWork\trunk\core\main\resources\config\struts.xml (全局配置)
		- ClearWork\trunk\core\main\resources\config\struts\ (模块配置)
		- 的配置文件
		-
		- A web app can just contain one such servlet.
		- If you need multiple namespaces, use Struts' module mechanism.
	-->
	<servlet>
		<servlet-name>action</servlet-name>
		<servlet-class>
			net.sf.clearwork.web.struts.StrutsActionServlet
		</servlet-class>
		<load-on-startup>3</load-on-startup>
	</servlet>
				
			

net.sf.clearwork.web.struts.StrutsActionServlet 继承自 org.apache.struts.action.ActionServlet

7.2. Ajax支持

MVC View Layer

ClearWork提供了一套轻量级的 Ajax 封装,可以方便的、自由的运用Ajax开发您的前端应用。支持Ajax+Struts的组合。

ajax_template.js 提供了如下script函数供Ajax应用调用:

  1. ajaxGet (url, callbackFn) - 提供同步的、XML返回的、GET方式的Ajax调用;参数分别为:请求的URL、回调函数入口 (此2参数下同)。

  2. ajaxGet2 (url, callbackFn, isSynchro, isXML) - 提供更加灵活的GET方式的Ajax调用;后2个参数分别为:是否同步(boolean, false为异步)、是否为XML返回(boolean, false为文本方式返回)

  3. ajaxPost (url, callbackFn, formParamArr) - 提供同步的、XML返回的、POST方式的Ajax调用;最后一个参数为需要POST的表单域名称数组(array类型)。

  4. ajaxPost2 (url, callbackFn, formParamArr, formParamValueArr, isSynchro, isXML) - 提供更加灵活的POST方式的Ajax调用;formParamValueArr参数为需要POST的表单域值数组(array类型,可以为null)。

对于Struts+Ajax的应用,必须要指定Forward作为输出缓冲,在ClearWork框架中已经预置,在全局配置 struts.xml 中:

				
	<global-forwards>
		<forward name="ajax_outxml"
			path="/WEB-INF/global/ajax_outxml.jsp" />
		<forward name="ajax_outext"
			path="/WEB-INF/global/ajax_outext.jsp" />
	</global-forwards>
				
			

具体的Struts Action写法,可以参照ClearWork Sample net.sf.clearwork.sample.ajax.SampleAjaxTemplateAction 。对于Servlet方式的应用,本文档不做叙述,可以参考通用的资料。