论坛首页 Java企业应用论坛

Tapestry4.1.x中内置的ajax(不用写任何的javascript)

浏览 11497 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-09-10  
<span jwcid="resetNum@Insert" value="ognl:num" renderTag="true"></span>
这个生成的html中你看一下是不是生成了类似
<span id="resetNum">3</span>之类的,我没测试,应该是不会生成的,因为span为tapestry里默认的tag去输出的,你试一试div。
0 请登录后投票
   发表时间:2007-09-10  
将span改成div,情况还是一样...
页面源码为:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- Application: fruit -->
<!-- Page: Test -->
<!-- Generated: Mon Sep 10 20:33:33 CST 2007 -->
<html>
<head>
<meta name="generator" content="Tapestry Application Framework, version 4.1.2" />
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>test</title>
<script type="text/javascript">djConfig = {"isDebug":true,"baseRelativePath":"/fruit/app?service=asset&path=%2Fdojo-0.4.3%2F","parseWidgets":false,"locale":"zh-cn"} </script>

 <script type="text/javascript" src="/fruit/app?service=asset&path=%2Fdojo-0.4.3%2Fdojo.js"></script>
<script type="text/javascript">
dojo.require("dojo.logging.Logger");
dojo.log.setLevel(dojo.log.getLevel("WARNING"));
</script>
<script type="text/javascript">
dojo.registerModulePath("tapestry", "/fruit/app?service=asset&path=%2Ftapestry%2F");
</script>
<script type="text/javascript" src="/fruit/app?service=asset&path=%2Ftapestry%2Fcore.js"></script>
<script type="text/javascript">
dojo.require("tapestry.namespace");
tapestry.requestEncoding='UTF-8';
</script>
</head> 
<head> 
</head> 

<body id="Body">
 

<p><a id="DirectLink" href="/fruit/app?component=%24DirectLink&amp;page=Test&amp;service=direct&amp;updateParts=resetNum" onclick="return tapestry.linkOnClick(this.href,'DirectLink', false)">Refresh time</a>.</p>  
  

</body> 
</html>
<!-- Render time: ~ 16 ms -->
 


没看到div输出哦...
点击的时候,在控制台那边有输出随机数,事件是有触发的!
0 请登录后投票
   发表时间:2007-09-11  
<div jwcid="resetNum@Any"><span jwcid="@Insert" value="ognl:num">6</span></div>
0 请登录后投票
   发表时间:2007-09-11  
谢谢tapestry大哥,可以了!
请问这样写有什么特殊的含义没有?是不是要更新的组件一定要放到div层里面?
0 请登录后投票
   发表时间:2007-09-11  
问题终于都找到了,哈哈

原来 是同伴配置的hivemodule.xml出了问题
0 请登录后投票
   发表时间:2007-09-11  
不是一定要放到div里,原理应该是document.getElementbyId之类的函数调用,只要生成的html里有id应该就可以,然后让他根据id找到update的对象,最后利用innerHtml之类的替换,就是ajax那一套。
0 请登录后投票
   发表时间:2007-09-11  
<span jwcid="time@Insert" value="ognl:num" inherit-informal-parameters="yes" id="time" renderTag="true">time</span>
这样是么?为什么在一个项目里面这样写可以生成span标签,而另一个却不行?用同样的包,hivemodule、web、application配置几乎相同!一样的代码......
找了很久,还是找不出原因!望大哥再助!:(
0 请登录后投票
   发表时间:2007-09-11  
原因找到了...在页面类那边,
原代码是:
public abstract void setNum(Integer num);

改为:
public abstract void setNum(int num);


Integer类型在页面中是否就取不到值?有点不理解...
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics