首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CSS >

<html:messages id=””>标签跟<html:errors/>标签

2012-09-07 
html:messages id””标签和html:errors/标签??? bean:write namemessageid/ /html:messages sa

<html:messages id=””>标签和<html:errors/>标签

??? <bean:write name="messageid"/>

</html:messages>

saveErrors(request,errors)方法将ActionMessages对象保存到了request范围内,并以“org.apache.struts.Globals.ERROR_KEY”关键字存储。Action基类中saveErrors()方法的关键代码如下。

protected void saveErrors(HttpServletRequest request, ActionMessages errors){

??? request.setAttribute(org.apache.struts.Globals.ERROR_KEY,errors);

}

在页面方可通过<html:errors bundle="user" property="nameEmpty"/>来显示相关错误的消息

或者

<html:messages id="error" bundle="user" property="nameEmpty" >
??? <bean:write name="error"/>
</html:messages>
来取property="nameEmpty"的单个的错误消息(注:id只是一个标示,只要和bean:write的name属性保持一致即可)
----------------------------------------
或者
<html:messages id="error" bundle="user">
<bean:write name="error"? />
</html:messages>
来取所有的错误消息
相当于
<html:errors bundle="user"/>

另外,还可以通过saveMessages(request,errors)方法将ActionMessages对象保存到request范围内,但此时在request范围中以“org.apache.struts.Globals.MESSAGE_KEY”关键字存储。Action基类中saveMessages()方法的关键代码如下。

protected void saveMessages(HttpServletRequest request, ActionMessages errors) {

??? request.setAttribute(org.apache.struts.Globals.MESSAGE_KEY,errors);

}

所以如果使用了saveMessages()方法存储消息,在使用<html:errors>标签输出消息时,要通过name属性来指定在 request或session范围内以“org.apache.struts. Globals.MESSAGE_KEY”关键字来查找ActionMessages对象。否则此时忽略name属性,Struts会使用默认的关键字“org.apache.struts.Globals. ERROR_KEY”进行查找,将找不到存储的消息。

<html:messages id="error" bundle="user" message="true">
<bean:write name="error"? />
</html:messages>
或者

<html:messages id="error" bundle="user" message="true" property="nameEmpty">
<bean:write name="error"? />
</html:messages>

分别来取全部或者是单个的错误消息

?

注意点:

虽然Struts已经声明:不推荐使用ActionErrors & ActionError对象,但在一些遗留的系统中,依然还是可以看到其影子,所以如果你的系统不幸属于这样的两种混合系统,有以下的几种方法可以参考
1。两次调用messagesPresent,如下
<!-- Print ActionErrors Object -->
<logic:messagesPresent>
?? <html:messages id="msg" message="true">
???? <div message="true">
???? <div class="success">
?????? <bean:write name="msg"/>
???? </div><br/>
?? </html:messages>
</logic:messagesPresent>

2.分别使用<html:messages> <html:errors>标签,当然在老系统中需要调用Action的saveErrors方法,而在新的应用中要调用saveMessages方法。

3.更换所有的ActionErrors为ActionMessages,并将所有调用saveErrors的地方更换成saveMessages,并将<html:errors>标签相应的更换成<html:messages message="true"> - 推荐!

热点排行