Как отправить другое значение вместо значения, отображаемого в раскрывающемся списке при выполнении поиска? - PullRequest
0 голосов
/ 14 сентября 2011

У меня есть следующий код для выпадающего списка на моем JSP, который заполняется через разделенные запятыми значения строки, хранящиеся в файле свойств. Выбрав любое из этих значений, пользователь выполняет поиск, который передается в виде строки запроса. Однако мое требование таково, что для определенного значения отображается в раскрывающемся списке «Мое приложение», но при отправке поискового запроса его следует отправлять как «MyApp». Любые мысли о том, как этого добиться, поскольку это только для одного конкретного значения, а остальные значения, отправленные в строке запроса, будут такими же, как показано в раскрывающемся списке ???

<option id="classification" value="${values}">${values}</option>

1 Ответ

0 голосов
/ 14 сентября 2011

Вам нужно будет создать Map<String, String> со всеми значениями и метками.

В основном,

Map<String, String> options = new LinkedHashMap<String, String>();

for (String value : values.split(",")) {
    if (value.equals("My Application")) {
        options.put("MyApp", value);
    } else {
        options.put(value, value);
    }
}

, которое вы выводите на экран следующим образом:

<c:forEach items="${options}" var="option">
    <option value="${option.key}">${option.value}</option>
</c:forEach>

Я думаю, что лучше указывать как значение, так и метку в файле свойств.Например,

values = MyApp=My Application,FooApp=Foo Application,EtcApp=Etc Application

с

for (String valueAndLabel : valuesAndLabels.split(",")) {
    String[] parts = valueAndLabel.split("=");
    options.put(parts[0], parts[1]);
}
...