Я работаю над приложением Spring, и на странице JSPX мне нужно динамически загружать некоторые значения со страницы свойств и устанавливать их как раскрывающийся список с помощью тега параметров. Мне нужно использовать один и тот же текст для значения параметров и для отображения, но для значения параметров мне нужно удалить все специальные символы.
Например, если значение равно «Дядя по материнской линии», то мне нужно
<option value="MaternalUncle">Maternal Uncle</option>
Я получаю следующее:
<option value="Maternal Uncle">Maternal Uncle</option>
Есть 2 приложения, которые могут использовать эту страницу, и какой файл свойств загружать, зависит от приложения. Если я загружаю значения для приложения 1, значения отображаются правильно. Последнее значение в приложении 1 — «Другие» и не имеет специальных символов. Для приложения 2 он не обрезает пробелы, где последним значением является «дядя по материнской линии». repOptions в коде — это ArrayList со значениями, загружаемыми из файла свойств.Вот мой код:
<select name="person" id="person">
<option value="na">Select the relationship</option>
<c:forEach items="${repOptions}" var="repOption">
<option value="${fn:replace(repOption, '[^A-Za-z]','')}">${repOption}</option>
</c:forEach>
</select>
Первое приложение удаляет пробелы, так как это значение является 4-м в списке из 9. Для app2 это последнее значение, и регулярное выражение не работает. Если я поставлю материнского дядю в качестве первого свойства для app2, тогда это будет работать нормально, но требования должны быть последними.
<option value="${fn:replace(repOption, ' ','')}">
работает с пробелами, но могут быть такие значения, как Brother/Sister, поэтому мне нужно удалить / также, поэтому я использую регулярное выражение.