嗨,我有下面的伪代码,并抛出这样的异常
throw new MyException("Bad thing happened","com.stuff.errorCode");其中MyException扩展了异常类。下面是我处理异常的方法
ActionMessages errors = new ActionMessages();
if(ex.getErrorCode() != null && !"".equals(ex.getErrorCode()))
error = new ActionMessage(ex.getErrorCode()); // com.stuff.errorCode is the errorCode
else
error = new ActionMessage(ex.getMessage()); //"Bad thing happened" is error message
errors.add(ActionMessages.GLOBAL_MESSAGE, error);
//errors.add(Globals.MESSAGE_KEY, error );
saveErrors( requ, errors );
return (mapping.findForward(nextScreen));现在,在用户屏幕上,消息显示为
发生了???en_US.Bad事件?
我正在使用Struts1.2.4,我正在查看它的源代码,但是任何指针都会非常感谢。
发布于 2010-03-12 13:15:58
要避免ActionMessage试图将文字消息解释为键,请使用这个构造函数
error = new ActionMessage(ex.getMessage(), false);boolean参数指定String参数将被解释为要查找的代码(true)还是文本消息(false)。
发布于 2010-03-12 12:31:50
编辑:这个答案是在问题发生实质性变化之前写的。
"???en_US“必须来自其他地方(可能是用于打印消息的web框架),因为Exception本身不进行任何查找。
编译以下代码:
public class MyException extends Exception {
public MyException(String msg, String sErrorCode) {
super(msg);
// ignore sErrorCode
}
}
public class MyExceptionTest {
public static void main(String[] args) {
System.out.println(new MyException("foo", "bar").getMessage());
}
}运行MyExceptionTest,您将看到一个简单的"foo“作为输出(正如预期的那样)。
发布于 2010-03-12 12:26:39
Java正在寻找应用程序资源来包含您的错误消息的本地化版本。
这就是???en_US?事情是关于。出于某种原因,它认为您正在引用一个关键的“发生了不好的事情”,并正在寻找本地化(即翻译)消息。
为什么?
还不确定。你能把你所有的MyException课程都贴出来吗?
https://stackoverflow.com/questions/2432587
复制相似问题