无法找到Struts bean

时间:2013-04-24 21:46:03

标签: struts struts-1 struts-html

我遇到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

这没有意义,因为bean在第24行上面定义了

有什么想法吗? 感谢

1 个答案:

答案 0 :(得分:1)

正如您所说,代码的语法是正确的。我的猜测是remotes bean的一个对象是一个空值。在这种情况下,根据struts1 reference

  

如果您正在迭代的集合可以包含空值,那么   仍将执行循环,但没有页面范围属性(由   将为该循环迭代创建id属性)。你可以使用   <{1}}和<logic:present>代码用于测试此案例。

将执行<logic:notPresent>标记,但rem不会存在于任何范围内。检查数组/列表/地图/等<bean:write name="rem" property="name"/>中的空值,或使用remotes标记添加测试。