`
toyota2006
  • 浏览: 545802 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

AJAX方式的ET的使用

阅读更多
1.DWR配置和使用
设置DWR的使用是简单的:
将DWR的jar文件拷入Web应用的WEB-INF/lib目录中,
在web.xml中增加一个servlet声明,并创建DWR的配置文件。DWR的分发中需要使用一个单独的jar文件。
你必须将DWR servlet加到应用的WEB-INF/web.xml中。

在WEB-INF目录下创建一个dwr.xml文件

<!DOCTYPE dwr PUBLIC   
"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"   
"http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
 <allow>
  <create creator="new" javascript="Assembler">
   <param name="class"
    value="com.systop.ec.Assembler" />
   <include method="getTable" />
  </create>
 </allow>
 <signatures>
  <![CDATA[      
import java.util.Map;      
import java.util.List;      
import com.systop.ec.Assembler;      
import javax.servlet.http.HttpServletRequest;      
Assembler.getTable(Map<String, List> parameterMap, HttpServletRequest request);      
]]>
 </signatures>
</dwr>
2.创建POJO
DWR使用(works with)POJOs。这个非常符合我们的需要,因为eXtremeTable有足够的API使用Jsp标签来构造表。
实际上,JSP标签只不过是eXtremeTable Java API的前端。首先,我将展示构造表的方法:

public class Assembler {
  private Object build(TableModel model, List pres) throws Exception {
    Table table = model.getTableInstance();
    table.setTableId("assembler");
    table.setItems(pres);
    table.setAction(model.getContext().getContextPath() + "/userAction.do");
    table.setTitle("ET+AJAX");
    table.setImagePath(model.getContext().getContextPath()+"/images/table/*.gif");
    table.setRowsDisplayed(3);
    table.setOnInvokeAction("buildTable('assembler')");
   
    model.addTable(table);    Row row = model.getRowInstance();
    row.setHighlightRow(Boolean.FALSE);
    model.addRow(row);    Column columnName = model.getColumnInstance();
    columnName.setProperty("name");
    model.addColumn(columnName);    Column columnNickName = model.getColumnInstance();
    columnNickName.setProperty("nickname");
    model.addColumn(columnNickName);    Column columnTerm = model.getColumnInstance();
    columnTerm.setProperty("term");
    model.addColumn(columnTerm);
 
    return model.assemble();
  }   /**
   * 这个方法调用比较频繁,它执行双重职责。它需要被Controller(如果使用Spring的话)在第一次调用,
   * 如果使用Struts就等同于Action类。 随后,当使用AJAX时,这个方法也需要被调用,但是这次将传入一个
   * 定制的parameterMap。parameterMap将包含eXtremeTable使用AJAX需要的所有参数。当你看了 Controller
   * 和JSP后,这点将更加清晰。
   * @param parameterMap
   * @param request
   * @return
   */
  public String getTable(Map parameterMap, HttpServletRequest request) {
    WebApplicationContext webApplicationContext = WebApplicationContextUtils
        .getWebApplicationContext(request.getSession().getServletContext());
    PresidentsDao presidentsDao = (PresidentsDao) webApplicationContext.getBean("presidentsDao");
    List presidents = presidentsDao.getPresidents();
    Context context = null;
    if (parameterMap == null) {
      context = new HttpServletRequestContext(request);
    } else {
      context = new HttpServletRequestContext(request, parameterMap);
    }
    TableModel model = new TableModelImpl(context);
    try {
      return build(model, presidents).toString();
    } catch (Exception e) {
      e.printStackTrace();
    }
    return "";
  }
}
3.创建Action
 
public ActionForward execute(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws Exception {               Assembler assembler = new Assembler();                                       Object viewData = assembler.getTable(null, request);                                     request.setAttribute("assembler", viewData);                                       return mapping.findForward("userList");              }
  Action在被第一次调用时来构建表。它调用POJO并将表传给request。注意空值(null)如何使用parameterMap传输。
  这是因为第一次表被构造时,没有对应表需要知道的actions


  4.创建JSP
通过引入(importing)合适的javascript文件来开始构建JSP页面。唯一需要包含进工程的javascript文件
  是extremecomponents.js,其它的javascript文件申明都是DWR使用的。


 
<script type="text/javascript" src="<c:url value="/dwr/interface/Assembler.js"/>"></script> 
  <script type="text/javascript" src="<c:url value="/dwr/engine.js"/>"></script> 
  <script type="text/javascript" src="<c:url value="/dwr/util.js"/>"></script> 
  <script type="text/javascript" src="<c:url value="/js/extremecomponents.js"/>"></script>
  接着,插入钩子(hook)来显示表,div被用来调用innerHtml并构建新的标签。

<div id="tableDiv">    <c:out value="${assembler}" escapeXml="false"/>   </div> 
  最后,添加javascript来调用DWR的钩子(hooks)。
<script type="text/javascript"> 

function buildTable(form) {   
var parameterMap = getParameterMap(form);      
Assembler.getTable(parameterMap, showTable);
 } 
 function showTable(table) {   
 document.getElementById('tableDiv').innerHTML=table; 
 }
 </script>
getParameterMap()方法包含在extremecomponents.js文件中,将的到所有的form参数。你需要传入一个 form id的参照。
记住,eXtremeTable本质上是一个form组建,tableid作为form id使用。默认的tableId为ec,但是你通常想要设置tableId,
以示大家能更容易阅读你的代码。你将使用parameterMap调用 POJO的getTable方法。showTable是一个callback告诉DWR当从
getTable()方法返回时将调用什么操作。

                                                                                                                                     参考:http://www.blogjava.net/lucky/archive/2006/03/27/37623.html
分享到:
评论

相关推荐

    memcache+ajax的简单聊天室

    主要是使用改程序熟悉下memchache缓存 文件列表: ...--getChatList() ...使用方式: 首先安装memchache服务,然后memcache.exe -d start开启服务 其他的放到工作目录下就行了 sunshine&lt;sir_vip@live.cn&gt;

    AjaxJson实体类与依赖包

    包含一个AjaxJson实体类,可在接口直接引用作为返回参数类型,还包含一个jar包,是该实体类的依赖包

    ET采集3 v3.5

    ET3(EditorTools)全自动采集器 软件特点:【全自动无人值守】无需人工值守,24小时自动实时监控目标,实时高效采集,昼夜不停为您提供内容更新。满足长期运行需求,将您从繁重工作中解脱【适用广泛】最全能的采集...

    Ajax-IkeyPro-Java-Web.zip

    Ajax-IkeyPro-Java-Web.zip,Réalisation et déd e veloppement d'une应用程序电子商务,http://www.ikeypro.ca,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它...

    根据Ecside ET 源码改变WEB JSP 分页标签

    很好很实用的jsp 分页插件 支持导出Excel PDF等实用功能,允许直接更改编辑分页 插入数据库中 利用jQuery AJAX技术 很实用欢迎下载

    Wicket 8.X开发文档(中文翻译+英文原版)

    如何使用AJAX组件和行为 19.2。内置AJAX组件 19.3。内置的AJAX行为 19.4。使用活动指示器 19.5。AJAX请求属性和调用侦听器 19.6。创建自定义AJAX调用侦听器 19.7。无状态AJAX组件/行为 19.8。Lambda支持组件 19.9。...

    井字游戏客户端:使用Javascript,Ajax和JQuery API的井字游戏

    应用名称:说明 该应用程序允许用户执行x,y和z。 也许这就是我想要执行此项目或提出这个想法的原因。... Etiam et totor坐在amet lacus volutpat dignissim。 sti草、,、 fe,ne,pre,。 es骨pharetra

    基于 jQuery 的 Web 源程序在线评测系统的设计与实现

    所以现在使用AJAX技术开发源代码在线评测系统的时机已经成熟了。 将 AJAX 技术用于源代码在线评测系统除了界面的漂亮,同时还大量减少了客户端和 服务器端传输的数据量,节约了带宽,提高了相应速度。这样也就提高了...

    JAVA上百实例源码以及开源项目

     通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 ...

    Caronte.js:适用于现代浏览器的简单javascript ajax文件上传器脚本

    Caronte.js-简单的javascript ajax文件上传器 Portitor具有horrendus aquas et flumina servat 特里比利·斯夸洛·夏隆,崔普里玛·门托康乃馨文化,固定的lum火焰, 乌梅氏杆菌埃涅德6.298–301 安装 Npm npm ...

    buzzeet

    使用 : Signup(signup.php)-用php和ajax(jquery)创建的ajax用于检查数据库用户名是否已经存在而不必先提交表单。 -使用一些Java脚本检查密码是否匹配,并启用“提交”按钮;否则,如果不进行数学运算,则禁用该...

    JBob平台系统下载

    JBob是基于Java和Ajax的平台系统,采用Ext JS作为前端用户界面,Et-mvc作为后台支持框架,专注于权限控制,主要用于开发企业级信息系统。 平台集成了开发环境、运行框架,主要实现了用户组织、资源与数据权限管理...

    java开源包8

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包1

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包11

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包2

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包3

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包6

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包5

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    java开源包10

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

Global site tag (gtag.js) - Google Analytics