2013-04-24 2 views
0

У меня проблема с Struts. Это не признание боб, даже если она определена на одну строку вышеStruts bean не найден

У меня есть этот код

<logic:iterate id="com" name="Handler" property="commandList"> 
23:        <optgroup id="${com.id}" style="display:none;"> 
24:         <logic:iterate id="rem" name="com" property="remotes"> 
25:          <option value="${rem.id}"><bean:write name="rem" property="name"/></option> 
26:         </logic:iterate> 
27:        </optgroup> 
28:       </logic:iterate> 

и я получаю следующее сообщение об ошибке в строке 25:

javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot find bean: "rem" in any scope 

Который не имеет смысла , потому что бозон определен чуть выше по строке 24

Любые идеи? Thanks

ответ

1

Как вы заявляете, синтаксис вашего кода правильный. Я предполагаю, что один из объектов bean-объекта remotes является нулевым значением. В этом случае, согласно struts1 reference:

Если коллекция вы итерация может содержать нулевые значения, то цикл по-прежнему будет выполняться, но не атрибут страницы сферы (названный атрибутом ид) будет создан эта итерация цикла. Вы можете использовать теги <logic:present> и <logic:notPresent> для проверки этого случая.

Тег <bean:write name="rem" property="name"/> будет выполнен, но rem не будет существовать ни в каком объеме. Проверьте нулевые значения в вашем массиве/списке/карте/etc remotes или добавьте тест, используя тег <logic:present>.

+0

Спасибо, в этом была проблема. Боб имел нулевое значение – camelCase