浏览 5498 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-01-19
测试使用Webwork发行包中演示的starter项目,其中使用了ftl模板作为表现层,我按它的方式制造了newPerson.jsp。 下面是两个页面的源文件: newPerson.jsp <%@ page language="java" contentType="text/html; charset=utf-8"%> <%@ taglib uri="webwork" prefix="ww"%> <html> <head> <title>New Person</title> <link href="<ww:url value="/webwork/jscalendar/calendar-blue.css" />" rel="stylesheet" type="text/css" media="all"/> </head> <body> <ww:form action="newPerson" onsubmit="dosomething" validate="false"> <ww:textfield label="Name" name="person.name"/> <ww:datepicker name="date" id="ecoInf.turninDate" template="datepicker.ftl" language="en" format="%Y-%m-%d" label="Time"/> <ww:submit value="Create person"/> </ww:form> </body> </html>newPerson.ftl <html> <head> <title>New Person</title> <link href="<@ww.url value="/webwork/jscalendar/calendar-blue.css" />" rel="stylesheet" type="text/css" media="all"/> </head> <body> <@ww.form action="newPerson" onsubmit="dosomething"> <@ww.textfield label="Name" name="person.name"/> <@ww.datepicker name="date" id="ecoInf.turninDate" template="datepicker.ftl" language="en" format="%Y-%m-%d" label="Time"/> <@ww.submit value="Create person"/> </@ww.form> </body> </html> 程序逻辑继续使用starter项目里面的内容。 xwork中配置如下: <action name="newPerson" class="com.acme.CreatePerson"> <result name="success" type="redirect">listPeople.action</result> <!-- <result name="input" type="dispatcher">newPerson.jsp</result> --> <result name="input" type="freemarker">newPerson.ftl</result> </action>两个"success"的result轮流切换。 试验结果如下: 1、webwork.properties配置如下,使用vm的template,此时使用两种result的结果是相同的: webwork.ui.theme=simple webwork.ui.templateDir=template/archive webwork.ui.templateSuffix=vm显示结果,显然onsubmit没有输出,此时datapicker标签没有输出(因为老的vm模板没有提供datapicker标签): <form namespace="/" id="newPerson" name="newPerson" action="/starter/newPerson.action">2、webwork.properties配置如下,此时使用ftl的result和ftl的template: webwork.ui.theme=simple webwork.ui.templateDir=template webwork.ui.templateSuffix=ftl显示结果,onsubmit输出正常: <form id="newPerson" name="newPerson" onsubmit="dosomething" action="/starter/newPerson.action"> 3、webwork.properties配置如下,此时使用jsp的result和ftl的template: webwork.ui.theme=simple webwork.ui.templateDir=template webwork.ui.templateSuffix=ftl 显示结果,onsubmit没有输出: <form namespace="/" id="newPerson" name="newPerson" action="/starter/newPerson.action"> 此时尝试使用theme="xhtml"还是没有输出。 从上面的测试来看,似乎是个bug,可是在webwork网站却没有查到相关issue,怀疑是我这里的环境问题。以上测试在tomcat 5.5.12 or Weblogic 9.1 @ SUN JDK 1.5b6上面进行。希望哪位解决了上面问题指导一下我,谢谢。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-01-20
我这里也是,submit按钮也有这个问题,jsp的view
|
|
返回顶楼 | |
发表时间:2006-01-20
确实是一个bug,我提交到opensymphony的JIRA了。
|
|
返回顶楼 | |
发表时间:2006-01-20
robbin 写道 确实是一个bug,我提交到opensymphony的JIRA了。
谢谢robbin,过两天check out代码看看。 |
|
返回顶楼 | |
发表时间:2006-01-20
这个bug的原因是这样的:
com.opensymphony.webwork.views.jsp.ui.FormTag的populateParams()方法最后一行,请看: form.setOnselect(onsubmit); 哈哈,把onsubmit里面的东西给了onselect tag去了。纯属开发人员大意!如果你等不及下一个bugfix版本,你可以自行修改这个地方就正常了,改成: form.setOnsubmit(onsubmit); |
|
返回顶楼 | |
发表时间:2006-01-20
robbin 写道 这个bug的原因是这样的:
com.opensymphony.webwork.views.jsp.ui.FormTag的populateParams()方法最后一行,请看: form.setOnselect(onsubmit); 哈哈,把onsubmit里面的东西给了onselect tag去了。纯属开发人员大意!如果你等不及下一个bugfix版本,你可以自行修改这个地方就正常了,改成: form.setOnsubmit(onsubmit); 哈哈,这个疏忽真够搞笑的,我说那天看value stack里面的数据本来正确的,却看不到显示,原来如此。谢谢robbin,回去patch一下。 |
|
返回顶楼 | |