В layout.xsl есть конструкция, позволяющая показывать клиенту ошибки и уведомления:
Код:
<xsl:template name="error">
<xsl:param name="text"/>
<xsl:choose>
<xsl:when test="$text"><div class="errorMessage"><xsl:value-of select="$text"/></div></xsl:when>
<xsl:when test="@status = 'error'">
<div class="errorMessage"><b>Ошибка:</b> <pre><xsl:value-of select="/data/text()"/></pre></div>
</xsl:when>
<!-- также сообщения будем тоже рисовать -->
<xsl:when test="@status = 'message'">
<div class="infoMessage"><xsl:value-of select="/data/text()"/></div>
</xsl:when>
<!-- Это неверный способ передачи сообщения об ошибке. Постепенно убрать везде где используется в Web акшенах. -->
<xsl:otherwise>
<xsl:for-each select="/data/error">
<br/>
<div class="errorMessage">
<xsl:for-each select="row">
<xsl:value-of select="@text"/> <br/>
</xsl:for-each>
</div>
</xsl:for-each>
<xsl:for-each select="/data/message">
<br/>
<div class="infoMessage">
<xsl:for-each select="row">
<xsl:value-of select="@text"/> <br/>
</xsl:for-each>
</div>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
В старых экшенах, наследованных от bitel.billing.server.ActionBase есть два метода для установки текста ошибки и уведомления:
setWebErrorMessage
setMsg
В новых, наледованных от ru.bitel.bgbilling.kernel.base.server.action.Action такого нет.
Вместо
Код:
setWebErrorMessage(msg);
я должен делать:
Код:
throw new BGMessageException(msg);
Вопрос:
Что я должен написать вместо setMsg(msg) ??
Сделал свой public class ActionCustomTariffOption extends ActionTariffOption, в котором добавляются всякие декоративные плюшки, вроде оставшихся бесплатных минут по опции в день, предполагаемой стоимости подключения, краткого описания и т.п. Попросили выдавать msg при подключении опции, чтобы как-то визуально подтвердить получение бонуса, ага.