Очень простое приложение JSF:
blur
. Вот фрагмент кода
<h:form id="invOrdersWizForm">
<h:inputText id="name" maxlength="9" styleClass="ordLabelNarrow"
validator="#{person.validatePerson}"
value="#{person.name}">
<f:ajax render="phoneLabel" event="blur"/>
</h:inputText>
<h:outputText id="phoneLabel"
rendered="#{person.isValid}"
styleClass="ordLabelWide" value="#{person.phoneNumber}" />
</h:form>
ManagedBean
public void validatePerson(FacesContext context, UIComponent toValidate, Object value) {
name = ((String) value).toUpperCase();
phoneNumber = "12345678";
isValid = true;
}
Проблема в том, что по какой-то причине phoneNumber не отображается вообще.
Единственный способ заставить его работать - это изменить f: ajax на отображение @form
<h:inputText id="name" maxlength="9" styleClass="ordLabelNarrow"
validator="#{person.validateSecurityCode}"
value="#{person.name}">
<f:ajax render="@form" event="blur"/>
</h:inputText>
Или удалить отрисовку из phoneNumber
rendered="#{person.isValid}"
По какой-то причине f: ajax с определенным идентификатором элемента и отрисовка на основе атрибута managedBean не может сосуществовать.
Есть идеи или советы, ребята?
ПРИМЕЧАНИЕ: uint32_t muldiv (uint32_t a, uint32_t b, uint32_t c) {uint64_t x = а; х = х * Ь; х = х / с; return x; ...
Рассмотрим следующее как эталонную реализацию:
/* calculates (a * b) / c */
uint32_t muldiv(uint32_t a, uint32_t b, uint32_t c)
{
uint64_t x = a;
x = x * b;
x = x / c;
return x;
}
Меня интересует реализация (на C или псевдокоде), которая не требует 64-битного целочисленного типа.
Я начал рисовать эскиз реализация, которая выглядит следующим образом:
/* calculates (a * b) / c */
uint32_t muldiv(uint32_t a, uint32_t b, uint32_t c)
{
uint32_t d1, d2, d1d2;
d1 = (1 << 10);
d2 = (1 << 10);
d1d2 = (1 << 20); /* d1 * d2 */
return ((a / d1) * (b /d2)) / (c / d1d2);
}
Но трудность состоит в том, чтобы выбрать значения для d1 и d2, которые позволяют избежать переполнения ((a / d1) * (b / d2) <= UINT32_MAX) и минимизировать ошибку всего вычисления .
Есть какие-нибудь мысли?