Struts2---->fielderror显示处理
一、去掉fielderror显示中前面的圈的方法
theme都存在jar包中template文件夹下。
1、覆盖所应用主题中的的fielderror的那个ftl文件
新建/src/template/simple/fielderror.ftl
<#-- /* * $Id: fielderror.ftl 722375 2008-12-02 05:19:57Z wesw $ * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ --> <#if fieldErrors??><#t/> <#assign eKeys = fieldErrors.keySet()><#t/> <#assign eKeysSize = eKeys.size()><#t/> <#assign doneStartUlTag=false><#t/> <#assign doneEndUlTag=false><#t/> <#assign haveMatchedErrorField=false><#t/> <#if (fieldErrorFieldNames?size > 0) ><#t/> <#list fieldErrorFieldNames as fieldErrorFieldName><#t/> <#list eKeys as eKey><#t/> <#if (eKey = fieldErrorFieldName)><#t/> <#assign haveMatchedErrorField=true><#t/> <#assign eValue = fieldErrors[fieldErrorFieldName]><#t/> <#if (haveMatchedErrorField && (!doneStartUlTag))><#t/> <ul<#rt/> <#if parameters.cssClass??> class="${parameters.cssClass?html}"<#rt/> <#else> class="errorMessage"<#rt/> </#if> <#if parameters.cssStyle??> style="${parameters.cssStyle?html}"<#rt/> </#if> > <#assign doneStartUlTag=true><#t/> </#if><#t/> <#list eValue as eEachValue><#t/> <li><span>${eEachValue}</span></li> </#list><#t/> </#if><#t/> </#list><#t/> </#list><#t/> <#if (haveMatchedErrorField && (!doneEndUlTag))><#t/> </ul> <#assign doneEndUlTag=true><#t/> </#if><#t/> <#else><#t/> <#if (eKeysSize > 0)><#t/> <#list eKeys as eKey><#t/> <#assign eValue = fieldErrors[eKey]><#t/> <#list eValue as eEachValue><#t/> <span>${eEachValue}</span> </#list><#t/> </#list><#t/> </#if><#t/> </#if><#t/> </#if><#t/>
2、css控制
<?xml version="1.0" encoding="GB18030" ?> <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030" /> <title>theme学习</title> <style type="text/css"> .formFieldError { font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; color: #FF3300; vertical-align: bottom; } .formFieldError ul { /*list-style-type: none*/ margin: 0px; padding: 3px; vertical-align: middle; } .formFieldError ul li{ list-style-type: none } </style> </head> <body> 用CSS控制显示 <ol> <li> <s:form > <div class="formFieldError"> <s:fielderror /> </div> <s:textfield name='aaa'></s:textfield> </s:form> </li> </ol> </body> </html>
3、定义自己的主题,并且在配置文件设置为默认
将 <constant name="struts.ui.theme" value="simple" />改为<constant name="struts.ui.theme" value="mytheme" />
自己定义的mytheme和simple一模一样,只不过是将fielderror.ftl改成第一种方法中的。
推荐:所有的主题定义为simple,把fielderror特殊处理,自己控制其他标签的展现。