Java 自定义标记从servlet获取空值并捕获异常
我编写了自定义标记,使字符串易于本地化 在jsp中,它如下所示:Java 自定义标记从servlet获取空值并捕获异常,java,jsp,jstl,Java,Jsp,Jstl,我编写了自定义标记,使字符串易于本地化 在jsp中,它如下所示: <ct:word key="${message}"/> 我不想用 <c:if test="${not empty message}"/> or <c:when/> 但我有一个例外: java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key
<ct:word key="${message}"/>
我不想用
<c:if test="${not empty message}"/> or <c:when/>
但我有一个例外:
java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key
在我的方法中,我抓住了
catch (MissingResourceException e) {
throw new MyException(Constants.ERROR_TRANSLATE_TAG,e);
}
只有当我没有从servlet传递此消息时,我的应用程序才会发出此异常。即使没有此消息,我也希望显示页面,而不显示错误页面。对于记录:
resourceBundle.getString(键)如果找不到键,code>将抛出一个MissingResourceException
,从而在doStartTag()
方法中捕获该异常。是否尝试捕获MissingResourceException
?是的,为了避免拉取所有异常,我在try/catch块中抛出MyException。虽然我不知道如何处理此异常,但我只是在日志中写入此错误代码>行当抛出MissinResourceException
时,一切都应该正常。或者,当servlet应该设置密钥时,是否会出现异常?在这种情况下,您能给我们看一下您的标记描述吗?哦,这是一个愚蠢的错误,我需要再次捕获resourceBundle.getString(key)的MissingResourceException。谢谢@Thomas的帮助。此主题可以关闭。我将为可能发现该问题的其他人添加答案。
} catch (MyException e1) {
logger.error(e1);
return SKIP_BODY;
}
java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key
catch (MissingResourceException e) {
throw new MyException(Constants.ERROR_TRANSLATE_TAG,e);
}