1. 功能介绍

    该组件和AjaxDirectLink类似,但是它会提交表单,将form表单的值都传递到后台,类是Submit,而AjaxDirectLink只是将jsparam的参数传递到下页,目前该组件已不再需要使用,可以通过ajaxSubmit,ajaxPost方式替代,请参看ajax操作文档。

  2. 参数说明

    参数名 参数类型 是否必须 默认值 描述
    listener org.apache.tapestry.IactionListener   执行的方法
    loadingElement java.lang.Object     加载部分的id
    parameters java.lang.Object     执行方法传递的参数
    beforeAction java.lang.String     执行方法前执行的javascript方法
    beforeAction java.lang.String     执行方法后执行的javascript方法
    refreshParts java.lang.String     执行方法后刷新的区域,该区域是用part组件定义的
    stateful boolean   true 如果是true,那么组件需要一个active HttpSession才可以使用,否则的话抛出StaleLinkException异常;如果是false,则不需要检查是否有这个session
  3. 注意事项

    1. AjaxSubmitLink与AjaxDirectLink的区别
    2. AjaxSubmitLink会将界面中所有的表单控件的值传递到下页,类似Submit
    3. AjaxDirectLink只会将jsparam中的参数传递到下页,类似<a href="…">…</a>
  4. 代码片段

    1. HTML写法

      1. 定义ajax提交控件

        <a
        	jwcid="@wade:AjaxDirectLink"	//定义控件类型 
        	id="linkExample"				//定义id
        	listener="ognl:listeners.method"	//method为page中的方法
        	parameters="ognl:testList"		//parameters可以是一个String或List
        	refreshParts="refreshArea">	//需要刷新的控件
        </a>
        
      2. 在控件中发出请求

        <select
        	jwcid="@PropertySelection" 
        	model="ognl:selectResult1" 
        	value="ognl:info.state" 
        	desc="状态" 
        	nullable="yes" 
        	onChange="ajaxdo('linkExample','&tt='+getElement('hangye').value)"
        />
        

        说明:
        ajaxdo(para1,para2)
        para1:定义的AjaxDirectLink的ID
        para1:传递的参数 格式为&a1=1&a2=2
      3. 定义ajax刷新区域

        <span jwcid="@wade:Part" id="refreshArea" optimize="true">
        	<span jwcid="@TextField" id="hangye" value="ognl:testString" raw="true"/>
        	<select jwcid="@PropertySelection" model="ognl:selectResult2" value="ognl:eee" desc="状态" nullable="no"/>
        </span>