Я хотел бы сделать поле ввода JSF inputText в верхний регистр, когда пользователь перемещает фокус в сторону от поля. Было бы лучше сделать это, используя тег f:ajax
, и событие blur
вызовет вызов сервера, чтобы сделать верхний регистр, или было бы лучше сделать это в JavaScript? Какая причина была бы не для этого в JavaScript? Лучше всегда делать такие вещи, используя аякс-вызов на стороне сервера?Как сделать верхний регистр поля ввода ввода JSF на размытие
ответ
Есть действительно 2 способа спасти это.
Использование JavaScript.
<h:inputText ... onblur="value=value.toUpperCase()" />
Использование JSF.
<h:inputText ... converter="toUpperCaseConverter"> <f:ajax event="blur" render="@this" /> </h:inputText>
@FacesConverter("toUpperCaseConverter") public class ToUpperCaseConverter implements Converter { @Override public Object getAsObject(FacesContext context, UIComponent component, String submittedValue) { return (submittedValue != null) ? submittedValue.toUpperCase() : null; } @Override public String getAsString(FacesContext context, UIComponent component, Object modelValue) { return (modelValue != null) ? modelValue.toString() : ""; } }
JS подход очень прост. Тем не менее, это подрывает enduser, поскольку он выполняется полностью на стороне клиента, под полным контролем enduser. Конечный пользователь может отключить/пропустить этот JS-код и/или изменить параметр запроса, прежде чем он будет фактически отправлен на сервер. Подход JSF не подлежит подделке, поскольку это выполняется полностью на стороне сервера, поэтому это приводит к более надежному и надежному результату.
Вы должны решить, основываясь на тех фактах, которые соответствуют лучшим требованиям бизнеса.
Используйте это: style = "text-transform: uppercase", его работа для меня. И работайте с любой используемой вами платформой :) Я не думаю, что вам нужно использовать сложный путь к этой простой вещи.
Обратите внимание, что это чисто презентационное, и поэтому значение не распространяется на верхнюю часть страницы на стороне сервера после отправки на него. Я понял, что OP хочет получить значение в верхнем и верхнем вкусах на стороне сервера. – BalusC
спасибо за @BalusC и BlackKat, этот стиль - это то, что мне нужно (и, конечно же, в моем коде тоже прописные буквы). – WyllianNeo