messageResources 问题

phsea 2003-08-18 05:10:59
我在项目中想使用message-resources来处理错误信息,按以下去做,
结果总是错误,不知道哪位大侠能给解答,回复有分!!!
不甚感激!

struts-configure.xml:
<message-resources
parameter="com.evs.cims.struts.ApplicationResources"/>
ApplicationResources.properties:
error.userLoading.name=<li>Invalid user name for logining</li>
程序
MessageResources messages = getResources(request);
ActionErrors errors = new ActionErrors();
errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("error.userLoading.name"));
为什么错呢?当我打印异常信息时,就会抛出异常就是
errors.add()没有添加东西,是个null值,错误信息如下:
root cause

java.lang.NullPointerException
at org.apache.jsp.login_jsp._jspService(login_jsp.java:73)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:204)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:432)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:356)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1014)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:417)
at org.apache.struts.action.RequestProcessor.processActionForward(RequestProcessor.java:390)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:271)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
at java.lang.Thread.run(Thread.java:536)



...全文
146 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
phsea 2003-08-28
  • 打赏
  • 举报
回复
再请教一个问题,我想把一些变量放在属性文件里面,那我该如何取得这些变量呢?
如果如何在message属性文件中设置参数,比如,一个sql错误,我想抛出这个错误的时候
把sql异常信息联通配置文件中的错误信息一起抛出,该如何做到!谢谢各位的帮助
phsea 2003-08-18
  • 打赏
  • 举报
回复
org.apache.commons.digester.Digester error

我看出来了,还是配置问题,程序应该没有问题,郁闷!!!
phsea 2003-08-18
  • 打赏
  • 举报
回复
MessageResources messages = getResources(request);
struts-example里就是这么用的,是不是配置出了什么问题
biggie 2003-08-18
  • 打赏
  • 举报
回复
忘了说一句,在action里,需要加入
MessageResources messages = getResources(request);
biggie 2003-08-18
  • 打赏
  • 举报
回复
我的错误处理方法和struts理论上是一样的,key/values
看一看你哪错了?
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {

ActionErrors errors = new ActionErrors();

if (username == null&&username.equals(" "))) {
errors.add("username",
new ActionError("error.username.Null"));
}
return errors;

}
下配置文件中定义一下error.username.Null的key/values
并把配置文件放在和你的actionForm 同样的package下就可以了


你在试一试,不行的话,还不如用我的方法呢,方便移值
phsea 2003-08-18
  • 打赏
  • 举报
回复
ApplicationResources.properties
文件里有
error.userLoading.name=<li>Invalid user name for logining</li>
error.userLoading.password=<li>Invalid user password for logining</li>

不应该找不到啊,是不是路径问题啊
zhousm6 2003-08-18
  • 打赏
  • 举报
回复
看你的程序
MessageResources messages = getResources(request);
咋没用到呢?
phsea 2003-08-18
  • 打赏
  • 举报
回复
我把ApplicationResources.properties文件放在
WEB-INF\classes\com\evs\cims\struts\目录下,我看struts-example就是这么做的,
现在迷茫了,快来帮我,兄弟姐妹们!!!

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧