В моем проекте (Java/Play framework) У меня есть маршрутизация ошибок, которая проверяет ответ от веб-службы, если ответ является кодом ошибки, мы отображаем соответствующий сообщение о том, что было проблемой при вводе пользователя, служба проверяет достоверность ввода пользователя.Escape% symbol в строке java для применения String.format
Когда пользователь вводит символ%, эта логика ломается, потому что логика отображения ошибок использует
String.format(message, messageArgs);
Какие Интерполирует messageArgs интро в строке сообщения, где он находит%, а если messageArgs содержит%, как Я получаю исключение.
Перед отображением сообщения мне необходимо очистить, убрать или иным образом удалить% от пользовательских входов.
сообщение: Запрошенный адрес электронной почты% s недействителен messageArgs: orlybg%@gmail.com
Любые советы о том, как это сделать в Java в простой, короткий путь?
вот часть ошибки войти
java.util.UnknownFormatConversionException: Conversion = 'i'
at java.util.Formatter$FormatSpecifier.conversion(Formatter.java:2646)
at java.util.Formatter$FormatSpecifier.<init>(Formatter.java:2675)
at java.util.Formatter.parse(Formatter.java:2528)
at java.util.Formatter.format(Formatter.java:2469)
at java.util.Formatter.format(Formatter.java:2423)
at java.lang.String.format(String.java:2797)
at controllers.api.PublicAPI.renderAPIError(PublicAPI.java:176)
at controllers.api.DeviceAPI.setEmailAddress(DeviceAPI.java:736)
at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:557)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:508)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:484)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:479)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:161)
at Invocation.HTTP Request(Play!)
Спасибо!
Можете ли вы показать сообщение об ошибке? Я не думаю, что наличие '%' в 'messageArgs' будет проблемой. –
Можете ли вы опубликовать пример ввода, который не удается? – Joni
Готов только что отредактировал сообщение – orlybg