起因是使用Michael Chen的JSValidation,需要手动写onsubmit,结果居然发现webwork 2.2的正式版本里面的form tag里面的onsubmit在使用jsp view的时候没法输出,苦恼于此。暂时通过修改模板修改了一下,但是如此很不爽。所以就想测试一下到底是不是我们项目的问题还是ww 2.2的问题。但一直太忙,今天才抽出功夫测。以下是测试纪录,希望知道缘由的朋友帮我指点一下。
测试使用Webwork发行包中演示的starter项目,其中使用了ftl模板作为表现层,我按它的方式制造了newPerson.jsp。
下面是两个页面的源文件:
newPerson.jsp
java代码: |
<%@ 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:submit value="Create person"/> </ww:form> </body> </html> |
newPerson.ftl
java代码: |
<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> </body> </html> |
程序逻辑继续使用starter项目里面的内容。
xwork中配置如下:
java代码: |
<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的结果是相同的:
java代码: |
webwork.ui.theme=simple
webwork.ui.templateDir=template/archive webwork.ui.templateSuffix=vm |
显示结果,显然onsubmit没有输出,此时datapicker标签没有输出(因为老的vm模板没有提供datapicker标签):
java代码: |
<form namespace="/" id="newPerson" name="newPerson" action="/starter/newPerson.action">
|
2、webwork.properties配置如下,此时使用ftl的result和ftl的template:
java代码: |
webwork.ui.theme=simple
webwork.ui.templateDir=template webwork.ui.templateSuffix=ftl |
显示结果,onsubmit输出正常:
java代码: |
<form id="newPerson" name="newPerson" onsubmit="dosomething" action="/starter/newPerson.action">
|
3、webwork.properties配置如下,此时使用jsp的result和ftl的template:
java代码: |
webwork.ui.theme=simple
webwork.ui.templateDir=template webwork.ui.templateSuffix=ftl |
显示结果,onsubmit没有输出:
java代码: |
<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上面进行。希望哪位解决了上面问题指导一下我,谢谢。
你跟ZH都快升华了………