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

今天使用<html:messages>出现奇怪异常,大家进来帮帮忙

2011-12-29 
今天使用html:messages出现奇怪错误,大家进来帮帮忙。今天使用 html:messages 在JSP页面上显示消息:ACT

今天使用<html:messages>出现奇怪错误,大家进来帮帮忙。
今天使用 <html:messages> 在JSP页面上显示消息:

ACTION文件
ActionMessages   actionMessages   =   new   ActionMessages();
actionMessages.add( "messageReplySuccess ",   new   ActionMessage( "messager.action.messageReply.messageReplySuccess "));
saveMessages(request,   actionMessages);
return   mapping.findForward( "success ");

JSP文件

<html:messages   id= "notice "   property= "messageReplySuccess "   message= "true ">
<bean:write   name= "notice "/>
</html:messages>

struts-config.xml

<!--message   reply   initial-->
<action   path   =   "/mesReplyInit "
type   =   "messager.messageReply.MessageReplyInitAction "
name   =   "messageReplyForm "
scope   =   "session "
validate   =   "false "
input   =   "/jsp/MessageAdmin.jsp ">
<forward   name= "success "   path= "/jsp/MessageReply.jsp "   />
<forward   name= "fail "   path= "/jsp/MessageReply.jsp "   />
</action>
<!--message   reply   -->
<action   path   =   "/messageReply "
type   =   "messager.messageReply.MessageReplyAction "
name   =   "messageReplyForm "
scope   =   "session "
validate   =   "true "
input   =   "/jsp/MessageReply.jsp ">
<forward   name= "success "   path= "/jsp/MessageReply.jsp "   />
<forward   name= "fail "   path= "/jsp/MessageReply.jsp "   />
</action>

画面启动过程是:先走一个初始化ACTION,然后到JSP画面,用户点击按钮提交后进入
另一个ACTION(在这个ACTION里把ACTIONMESSAGE加到request),然后返回这个画面。

错误提示:

javax.servlet.ServletException:   Cannot   find   bean:   "notice "   in   any   scope
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.jsp.MessageReply_jsp._jspService(MessageReply_jsp.java:441)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1062)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
messager.util.SetEncodingFilter.doFilter(SetEncodingFilter.java:62)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)

大家帮我看看是哪里出了问题。
同样的方法在另一个画面都可以使用,不同的是那个画面打开钱没有经过初始化ACTION,但这不会影响啊。



------解决方案--------------------


你要经过初始化嘛,做个action!
[解决办法]
<html:messages id= "notice " property= "messageReplySuccess " message= "true ">
<bean:write name= "notice "/>
</html:messages>

改成
<html:messages id= "actionMessages " property= "messageReplySuccess " message= "true ">
<bean:write name= "actionMessages "/>
</html:messages>
[解决办法]
<html:messages id= "messageReplySuccess ">
是不是id应该对应你的
actionMessages.add( "messageReplySuccess ", new ActionMessage( "messager.action.messageReply.messageReplySuccess "));里面的key值
就是说messageReplySuccess这一个啊。
你初始化的时候也加上actionMessages.add( "messageReplySuccess ", null);
试试
[解决办法]
html:messages id= "notice " message= "true ">
<bean:write name= "notice "/>
</html:messages>
把property属性去掉就可以了。但是不能显示出HTML格式来。
比如: <font color= "green "> <li> 保存成功! </li> </font>

[解决办法]
楼主的问题其实不用这么麻烦吧,直接用
<beam:message key="messager.action.messageReply.messageReplySuccess"/>
就好了,因为不需要参数。

我这需要加参数,所以才用html:messages,结果和楼主类似,也是报那个id找不到-_-||
但是页面另外一处用到html:messages的却没错,唉,要赶紧积攒人品啊

Java code
messages.add("anonymousanswer", new ActionMessage("text.anonymousanswer", FaqConfig.getAnswer_anonymous())); 

热点排行