Можно ли определить переменную в Java и использовать ее в коде JSP?

1

У меня есть drop down, как показано ниже:

<html:select styleId="colorCodeId" property="msSpec.colorcodeId" name="Form"  styleClass="form-control">
                            <option value="-1"></option>
                            <html:optionsCollection property="colorcodeList" style="background: <%=test1%>;"/>
                        </html:select>

в java-коде у меня есть:

List<LabelValueBean> colorcodeList = new ArrayList<LabelValueBean>();
for (Mty property : customPropertyList) {
            LabelValueBean bean = new LabelValueBean(property.getName(), property.getId().toString());

if (property instanceof ColorCode) {
                test1 = property.getName();
                System.out.println("test1: " + test1);
                colorcodeList.add(bean);
            }
}

Возможно ли, что я определяю test1, как указано выше, и использую это как фоновый цвет в моем раскрывающемся списке? Сейчас это не работает. Есть идеи?

Теги:
jsp
jstl
el
struts

2 ответа

0
Лучший ответ

Вы можете использовать выражение JSP EL вместо переменной. Причина заключается в том, чтобы удалить скрипты из вашего кода.

<html:select styleId="colorCodeId" property="msSpec.colorcodeId" name="Form"  styleClass="form-control" style="${test1}">
                            <option value="-1"></option>
                            <html:optionsCollection property="colorcodeList" />
                        </html:select> 

В действии вы пишете

List<LabelValueBean> colorcodeList = new ArrayList<LabelValueBean>();
for (Mty property : customPropertyList) {
            LabelValueBean bean = new LabelValueBean(property.getName(), property.getId().toString());

if (property instanceof ColorCode) {
                test1 = property.getName();
                System.out.println("test1: " + test1);
                request.setAttribute("test1", "background: "+test1+";");
                colorcodeList.add(bean);
            }

}
  • 0
    Когда я помещаю запрос в свой код Java, он говорит, что запрос не может быть решен. я должен импортировать библиотеку?
  • 0
    Это доступно для ваших действий.
0

Язык выражения JSP не может использовать переменные Java, объявленные в пользовательском Java-коде.

"Переменные", которыми может обладать язык выражения JSP, на самом деле являются атрибутами, установленными в одной из четырех "областей", которые определяются структурой JSP/Servlet; т.е. "сеанс", "запрос", "страница" и "приложение".

Вы можете получить и установить эти атрибуты из Java; например

   // Request scope
   request.getAttribute("test1");  
   request.setAttribute("test1", someValue);

Чтобы получить больше информации:


Когда я добавляю запрос в свой код Java, он говорит, что запрос не может быть разрешен. следует импортировать библиотеку?

Если ваш код встроен в JSP, request должен быть объявлен.

В противном случае замените request именем переменной, которая ссылается на объект HttpServletRequest для текущего запроса.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню