я написал пользовательский тег, который облегчает локализацию строк;
в jsp выглядит так:
<ct:word key="${message}"/>
сообщение передано из сервлета.Этот тег принимает необходимую строку из ResourceBundle.Все работает, но есть проблема.Если я не передал сообщение от сервлета, тогда мое приложение выдает исключение (ResourceBundle не может найти необходимую строку).
Как убедиться, что пользовательский тег не отвечает на ноль и пропускается?как это делает
<c:out />
код im мой пользовательский тег:
private String key;
private String value;
public void setKey(String key) {
this.key = key;
}
public String getKey() {
return this.key;
}
public int doStartTag() {
try {
this.checkLocale();//check locale and init resourceBundle
value = resourceBundle.getString(key);
pageContext.getOut().write(value);
} catch (IOException e) {
logger.error(e);
} catch (MyException e1) {
logger.error(e1);
}
return SKIP_BODY;
}
Я не хочу использовать
<c:if test="${not empty message}"/> or <c:when/>
это загромождает код на jsp
ОБНОВЛЕНО : я пытаюсь
} 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);
}
мое приложение выдает это исключение ТОЛЬКО если я не передал это сообщение из сервлета.Я хочу отобразить страницу, даже если у меня нет этого сообщения, без страниц ошибок.