tapestry4.1.2使用script问题

由于没有《Enjoying web development with tapestry 4.1》的文档,只能按照4.0里面的内容去测试。

对应书上例子:304页-311页。

Home.html:

xml 代码
  1. <html>  
  2. <body jwcid="@Body">  
  3.   
  4.   
  5. <form jwcid="@Form" action="http://www.foo.com">  
  6.    <input jwcid="deleteButton@Submit" type="submit" value="Delete"/>  
  7.    <span jwcid="insertConfirmScript"/>  
  8. form>  
  9.   
  10. body>  
  11. html>  

Home.page:

xml 代码
  1. <!---->xml version="1.0"?>  
  2.   
  3. <!---->
  4.   "-//Apache Software Foundation//Tapestry Specification 4.0//EN"    
  5.   "http://tapestry.apache.org/dtd/Tapestry_4_0.dtd">  
  6.   
  7. <page-specification>  
  8.     <component id="insertConfirmScript" type="Script">  
  9.         <binding name="script" value="literal:Confirm.script"/>  
  10.         <binding name="msg" value="literal:Are you sure?"/>  
  11.         <binding name="button" value="components.deleteButton"/>  
  12.     component>  
  13.        
  14. page-specification>  

Confirm.script:

xml 代码
  1. <!---->xml version="1.0" encoding="gb2312"?>  
  2. <!---->
  3.     "-//Apache Software Foundation//Tapestry Script Specification 3.0//EN"   
  4.     "http://jakarta.apache.org/tapestry/dtd/Script_3_0.dtd">  
  5. <script>  
  6. <input-symbol key="msg" required="yes"/>  
  7. <input-symbol key="button" required="yes"/>  
  8. <let key="funcName" unique="yes">getConfirmationlet>  
  9. <body>  
  10. function ${funcName}(){   
  11.       return confirm("${msg}");   
  12.     }   
  13. body>  
  14. <initialization>  
  15.         document.${button.form.name}.${button.name}.onclick=${funcName};   
  16. initialization>  
  17. script>  
  18.   

 

运行后的源码:

 

xml 代码
  1. <html>  
  2.   
  3. <body id="Body">  
  4. <script type="text/javascript"><!---->
  5. function getConfirmation(){   
  6.       return confirm("Are you sure?");   
  7.     }   
  8. // -->script>  
  9.   
  10.   
  11. <form method="post" action="/ConfirmDelete/app" id="Form">  
  12. <div style="display:none;" id="Formhidden"><input type="hidden" name="formids" value="deleteButton" />  
  13. <input type="hidden" name="component" value="$Form" />  
  14. <input type="hidden" name="page" value="Home" />  
  15. <input type="hidden" name="service" value="direct" />  
  16. <input type="hidden" name="submitmode" value="" />  
  17. <input type="hidden" name="submitname" value="" />  
  18. div>  
  19.    <input type="submit" name="deleteButton" id="deleteButton" value="Delete" />  
  20.       
  21. form>  
  22.   
  23. <script type="text/javascript"><!---->
  24. dojo.addOnLoad(function(e) {   
  25. dojo.require("tapestry.form");tapestry.form.registerForm("Form");   
  26. document.Form.deleteButton.onclick=getConfirmation;   
  27. tapestry.form.focusField('deleteButton');});   
  28. // -->script>body>  
  29. html>  

在IE中运行提示script错误:

java 代码
  1. 行:24  
  2. 字符:1  
  3. 代码:0  
  4. 错误:'dojo' 未定义   
  5. 网址:http://localhost:7856/ConfirmDelete/app   

 

和文档中的例子产生的页面代码不一致的地方在于最后几行。

文档中:

xml 代码
  1. <script language="JavaScript" type="text/javascript"><!---->
  2.   
  3. var $Form_events = new FormEventManager(document.$Form);   
  4.   
  5. document.$Form.deleteButton.onclick=getConfirmation;   
  6.   
  7. focus(document.$Form.deleteButton);   
  8.   
  9. // -->script>  

 

中间还有一些差别,先不管了!

运行后,点击按纽没有任何反应。

 

请问各位大大,4.1.2中使用script还需要哪一些配置?(动态绑定组件事件时才会出错,事先传入组件名不会出错!)

知道的请告诉我,再次谢过了!

你可能感兴趣的:(JavaScript,apache,tapestry,firefox,dojo)