续:自定义模板,改变struts2中校验信息的显示格式

我们已经实现了校验信息在输入框右边显示,但是输出的错误信息的样式太难看了,我们怎么样将其改变一下呢,能不能根据自己的需求设置呢?能。下面我把自己的设置过程共享一下。

    我们查看页面源文件会发现有这么一个样式表的引入,但是styles.css这个样式表在什么地方呢?在我们的项目中是找不到的,但是可以肯定的是styles.css在某一个.jar包中,寻找一下我发现在struts2核心jar包中有两个。分别在template/xhml和template/css_xhml中,也就是在主题包中。
    既然找到了所在的位置,我就想在自己的项目WEB-INF/classes/template/xhtml 下自定义一个styles.css,这种想法是没问题的,有问题的是自定义的样式表竟然覆盖不了struts2中的样式表!!
    既然自定义的不可以用,那我就直接修改struts2中的文件吧,费劲九牛二虎之力修改之后,竟然还是不可以!!!
    这到底是怎么回事呢???
    /MailSystem/struts/styles.css这个路径找不到,又不能进行覆盖,看来修改struts2框架的方法是行不通了(谁有好方法,告诉我( ⊙ o ⊙ )啊!),那就想别的法吧。
    突然想到了一个问题能不能更改一下/MailSystem/struts/styles.css这个路径呢?把它改成我们熟知的一个路径不就万事大吉了么。首先让我们看一下这个路径是从哪里过来的吧。在主题xhml中有一个hean.ftl模板,其内容如下:

<#include "/${parameters.templateDir}/**/head.ftl" />
 
很显然了,/MailSystem/struts/styles.css这个路径就来自这里了。
下面就是我们用自己的css来替换struts2原有的css了,在WebRoot下建立一个包css,将styles.css复制到下面,进行自定义设置就可以了。然后把hean.ftl模板内容替换为
'/css/styles.css' includeParams='none' encode='false' />" type="text/css"/>
<#include "/${parameters.templateDir}/**/head.ftl" />
就好了,是不是很简单啊?O(∩_∩)O哈哈~

你可能感兴趣的:(续:自定义模板,改变struts2中校验信息的显示格式)