日期:2014-05-16  浏览次数:20397 次

ext js 4 学习笔记6
一 ext.direct
    有点象DWR,但跨平台,根据后台暴露的功能生成前台的JS

  1)支持类库下载:directjngine  http://code.google.com/p/directjngine
  2)配置服务端功能
     比如首先formaction处理表单的读取和提交
     @DirectMethod
public ExtFormDirectResult loadProductServer(String productId){
ExtFormDirectResult result = new ExtFormDirectResult();
if("001".equals(productId)){
//获取产品信息
Product product = new Product();
product.setProductName("笔记本");
product.setIntroduction("本产品美观实用,售后服务优秀。");
//将产品信息放入结果对象中
result.setData(product);
result.setSuccess(true);
}else{
//设置错误信息
result.setErrorMessage("读取的产品id不存在");
result.setSuccess(false);
}
return result;
}
/**
* 表单提交处理方法
* @param params 表单参数集合
* @param files 文件集合
* @return 结果对象
*/
@DirectFormPostMethod
public ExtFormDirectResult submitProductServer(Map<String,String> params, Map<String, FileItem> files){
ExtFormDirectResult result = new ExtFormDirectResult();
//获取表单参数
String productName = params.get("productName");
if("笔记本".equals(productName)){
result.setSuccess(true);
}else{
result.addError("productName", "产品名称必须是:笔记本");
//设置错误信息
result.setErrorMessage("提交产品名称错误");
result.setSuccess(false);
}
return result;
}
  
   配置WEB.XML
     <!-- DirectJNgine servlet -->
<servlet>
<servlet-name>DjnServlet</servlet-name>
<servlet-class>
com.softwarementors.extjs.djn.servlet.DirectJNgineServlet</servlet-class>
<init-param>
<param-name>providersUrl</param-name>
<param-value>djn/directprovider</param-value>
</init-param>
<init-param>
<param-name>apis</param-name>
<param-value>form,data</param-value>
</init-param>
<init-param>
<param-name>form.apiFile</param-name>
<param-value>form/api.js</param-value>
</init-param>
<init-param>
<param-name>data.apiFile</param-name>
<param-value>data/api.js</param-value>
</init-param>
<init-param>
<param-name>form.apiNamespace</param-name>
<param-value>Ext.form.app</param-value>
</init-param>
<init-param>
<param-name>data.apiNamespace</param-name>
<param-value>Ext.data.app</param-value>
</init-param>
<init-param>
<param-name>form.classes</param-name>
<param-value>
com.sample.ext4.direct.form.action.FormAction
</param-value>
</init-param>
<init-param>
<param-name>data.classes</param-name>
<param-value>
com.sample.ext4.direct.data.action.DataAction
</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<!-- 指定gson的配置类 -->
<param-name>gsonBuilderConfiguratorClass</param-name>
<param-value>com.sample.ext4.direct.config.GsonBuilderConfiguratorCustom</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servle