无聊人士

搬家==》www.soapui.cn

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  32 随笔 :: 0 文章 :: 60 评论 :: 0 Trackbacks
使用ww2的validator,taglib就只能使用xhtml了。taglib我一向讨厌,再加上ww2 xhtml这套做得非常难看,自做主张的加一堆table、td之类的html标签进去。

看了一下xhtml的velocity模板,如果检验未通过,ww2将validators.xml中相应field检验失败的message是放进fieldErrors里面的。

checkbox.vm
#if( $fieldErrors.get($parameters.name) )
  #set ($hasFieldErrors = $fieldErrors.get($parameters.name))
  #foreach ($error in $fieldErrors.get($parameters.name))
    <tr>
        <td align="left" valign="top" colspan="2"><span class="errorMessage">$!error</span></td>
    </tr>
  #end
#end

<tr>
    <td valign="top" colspan="2">
#* Use an extra table so that the checkbox doesn't align with the other columns. *#
<table width="100%" border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td valign="middle">#parse("/template/simple/checkbox.vm")</td>
        <td width="100%" valign="middle"><label #if ($parameters.id) for="$!webwork.htmlEncode($parameters.id)"#end#if ($hasFieldErrors) class="checkboxErrorLabel"#else class="checkboxLabel"#end>$!webwork.htmlEncode($parameters.label)</label></td>
    </tr>
</table>
#parse("/template/xhtml/controlfooter.vm")

我使用的模板引擎是freemarker,参照xhtml的vm代码,自己写了个marco。

<#macro validError local>
    <#if req.method=='POST'>
        <#if
            fieldErrors?has_content &&
            fieldErrors[local]?exists
        >
            <br>
            <font color="red">
                <#list fieldErrors[local] as error>
                    ${error}
                </#list>
            </font>
        </#if>
    </#if>
</#macro>

模板示例:
            <tr>
                <td width="80" align="right">登录密码:</td>
                <td>
                <input type="password" name="model.password"
                    value="${model.password?if_exists}" size="24">
                <@validError local="model.password"/>
                </td>
            </tr>
posted on 2005-11-18 12:07 mmwy 阅读(1396) 评论(0)  编辑  收藏 所属分类: WebWork、Struts2、FreeMarker

只有注册用户登录后才能发表评论。


网站导航: