我认为,如果没有出错,或者没有定义出错键值(消息),输出就是null了。
你可以分析一下面关于html:errors用法的资料:
--------------------------
<html:errors>与ActionErrors一起用于显示出错消息。该标签首先从当前现场的资源文件读出消息键error.header,然后描绘消息文本。接下来,它循环整个ActionErrors对象。该对象一般作为request属性保存在键Action.ERROR_KEY之下。对每个ActionError对象,读某消息键,从当前现场资源文件读出,格式化相应的消息,并描绘这些消息。然后它也读出对应于键error.footer的消息并描绘它们。
    定义property属性可以过滤显示的出错消息。该属性的值应该对应于ActionError对象被保存在ActionErrors对象的键。该标签的属性解释如下,下面的所有属性都可以在运行时赋值。
    &#8226; bundle:含有消息资源的应用程序范围属性的名字。默认值是Action.MESSAGE_KEY。
    &#8226; locale:为用户当前注册保存现场的Session范围属性的名字,默认值是Action.ERROR_KEY。
    &#8226; name:保存ActionErrors对象的request属性的名字。默认值是Action.ERROR_KEY。
    &#8226; property:为了过滤消息,它可以用于指定各ActionError对象保存在ActionErrors对象中的键。
    下面是一些例子:
     <html:errors/>
     它将显示所有的错误。另一个例子是:
     <html:errors property=”missing.name”/>
     只显示保存在键missing.name的那些错误。