Tapestry4.1.x中内置dojo实现ajax功能,不用写任何的javascript就可以实现,
具体步骤如下。
1、用Shell组件包含进dojo,Shell组件会自动配置dojo包。
Java代码 复制代码
1. <html jwcid="@Shell" title="Basic Ajax Page">
2. <body jwcid="@Body">
3.
4. <p>Basic javascript inclusion sample.</p>
5.
6. </body>
7. </html>
<html jwcid="@Shell" title="Basic Ajax Page">
<body jwcid="@Body">
<p>Basic javascript inclusion sample.</p>
</body>
</html>
2、使用updateComponents参数
这个参数已经在很多组件里实现,加上这个参数就可以实现ajax了,例如组件
DirectLink, LinkSubmit, Form, ImageSubmit and Submit,你只要告诉它要
更新哪些部分或者组件就可以了,jwcid="time@Insert"这种取id为time,你也
可以将你需要更新的部分使用Any组件包含起来,例如
Java代码 复制代码
1. <div jwcid="ajax@Any">update me</div>
<div jwcid="ajax@Any">update me</div>
,同样这时的Id为ajax,而且你可以
更新多个,例如updateComponents="time,ajax"。
Java代码 复制代码
1. <html jwcid="@Shell" title="Basic Ajax Page">
2. <body jwcid="@Body">
3.
4. <p>Basic javascript inclusion sample.</p>
5.
6. <p><a jwcid="@DirectLink" listener="listener:onRefreshTime" updateComponents="time">Refresh time</a>.</p>
7.
8. <div jwcid="time@Insert" value="ognl:time" renderTag="true" />
9.
10. </body>
11. </html>
<html jwcid="@Shell" title="Basic Ajax Page">
<body jwcid="@Body">
<p>Basic javascript inclusion sample.</p>
<p><a jwcid="@DirectLink" listener="listener:onRefreshTime" updateComponents="time">Refresh time</a>.</p>
<div jwcid="time@Insert" value="ognl:time" renderTag="true" />
</body>
</html>
3、普通的Tapestry Page类
Java代码 复制代码
1. public abstract BasicAjax extends BasePage {
2.
3. public abstract void setTime(Date time);
4.
5. public void onRefreshTime()
6. {
7. setTime(new java.util.Date());
8. }
9. }
public abstract BasicAjax extends BasePage {
public abstract void setTime(Date time);
public void onRefreshTime()
{
setTime(new java.util.Date());
}
}
没了,已经可以运行了。
具体步骤如下。
1、用Shell组件包含进dojo,Shell组件会自动配置dojo包。
Java代码 复制代码
1. <html jwcid="@Shell" title="Basic Ajax Page">
2. <body jwcid="@Body">
3.
4. <p>Basic javascript inclusion sample.</p>
5.
6. </body>
7. </html>
<html jwcid="@Shell" title="Basic Ajax Page">
<body jwcid="@Body">
<p>Basic javascript inclusion sample.</p>
</body>
</html>
2、使用updateComponents参数
这个参数已经在很多组件里实现,加上这个参数就可以实现ajax了,例如组件
DirectLink, LinkSubmit, Form, ImageSubmit and Submit,你只要告诉它要
更新哪些部分或者组件就可以了,jwcid="time@Insert"这种取id为time,你也
可以将你需要更新的部分使用Any组件包含起来,例如
Java代码 复制代码
1. <div jwcid="ajax@Any">update me</div>
<div jwcid="ajax@Any">update me</div>
,同样这时的Id为ajax,而且你可以
更新多个,例如updateComponents="time,ajax"。
Java代码 复制代码
1. <html jwcid="@Shell" title="Basic Ajax Page">
2. <body jwcid="@Body">
3.
4. <p>Basic javascript inclusion sample.</p>
5.
6. <p><a jwcid="@DirectLink" listener="listener:onRefreshTime" updateComponents="time">Refresh time</a>.</p>
7.
8. <div jwcid="time@Insert" value="ognl:time" renderTag="true" />
9.
10. </body>
11. </html>
<html jwcid="@Shell" title="Basic Ajax Page">
<body jwcid="@Body">
<p>Basic javascript inclusion sample.</p>
<p><a jwcid="@DirectLink" listener="listener:onRefreshTime" updateComponents="time">Refresh time</a>.</p>
<div jwcid="time@Insert" value="ognl:time" renderTag="true" />
</body>
</html>
3、普通的Tapestry Page类
Java代码 复制代码
1. public abstract BasicAjax extends BasePage {
2.
3. public abstract void setTime(Date time);
4.
5. public void onRefreshTime()
6. {
7. setTime(new java.util.Date());
8. }
9. }
public abstract BasicAjax extends BasePage {
public abstract void setTime(Date time);
public void onRefreshTime()
{
setTime(new java.util.Date());
}
}
没了,已经可以运行了。