Разбор строковой переменной с помощью jstl - PullRequest
1 голос
/ 20 августа 2010

Вот моя проблема.

Мне нужно настроить процесс, предпочтительно с jstl / jsp, чтобы в зависимости от того, что клиент вводит в параметре URL, будет возвращаться определенный URL с теми же параметрамипередается и открывается через всплывающую функцию javascript.

Проблема, с которой я столкнулся, заключается в том, что оператор выбора не находит один из параметров, если он не является одним из начальных параметров.(Теперь вы думаете, «а?»)

Список параметров, передаваемых клиентом, выглядит следующим образом ...

?name=personsname&email=personsemail&tmplatecde=7&legalid=20266998&photoURL=%2Favmedia%2Fweb%2Findex%2F25505893822%2EJPG&agentNumber=047666&FWSType=FR&des=,+CLU%AE,+ChFC%AE&postto=thenetwork.nmfn.com&agentnumber=047666&formname=FWSContactForm2&attr=FRSite

Из этого параметра мне действительно нужны только'FormName.Однако, если я добавлю строку запроса таким образом, что ожидает клиент, он не найдет имя формы.Переместите параметр formname до параметра «name», он работает.

В моей компании мы создали специальный тег JSP, который может просто взять эту строку запроса и прикрепить ее к указанному URL-адресу, но для определения этого URL-адреса мне также нужно проверить, какое имя формы тоже.

Есть ли у кого-нибудь идеи относительно подходящего способа синтаксического анализа строки для получения этого значения имени формы?

Пока что у меня есть код, который имеет значение для этой проблемы:

<c:choose><c:when test='${param.formname == "FWSContactForm2"}' >

Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 20 августа 2010

Должно работать нормально. Эта строка запроса, однако, содержит специальный символ, который был закодирован с помощью URL-адреса ISO-8859-1, %AE (зарегистрированный знак ®). Возможно, сервлет-контейнер декодирует его, используя неправильную кодировку, и один сбой последовал за другим. Удалите эту %AE часть и повторите тестирование. Если это сработает, я бы изучил конфигурацию кодировки URL рассматриваемого сервлет-контейнера. С другой стороны, если у вас есть полный контроль над страницей, которая должна отправлять эту строку запроса, вы также можете установить набор символов ответа таким же, как тот, который использует servletcontainer. Это сломало бы меньше вещей.

...