各位大哥帮忙看一下问题在哪程序目的:jsp中接收Action的赋值。相关代码如下:1.AreaAction.java中赋值
Collection coll = new ArrayList();
coll = db.select(..);
if (coll == null || coll.isEmpty())
{return actionMapping.findForward("fail");
}else{
request.setAttribute("Area", coll);
return actionMapping.findForward("success");
}2.jsp4.jsp中获取 Area的值
<logic:iterate id="area" name="Area" type="com.cargo1.model.Area" scope="request">
<tr valign="top" bgcolor="#FFFFFF">
<td height="20" align="center" bgcolor="#FFFFFF"><bean:write name="area" property="name" filter="true"/></td>
<td height="20" align="center" bgcolor="#FFFFFF"><bean:write name="area" property="resume" filter="true"/></td>
</tr>
</logic:iterate>3.struts-config.xml配置action-mapping<action-mappings type="org.apache.struts.action.ActionMapping">
<action path="/areaAction" type="com.cargo1.control.AreaAction" validate="false" scope="request">
<forward name="success" path="/jsp4.jsp" redirect="true" />
</action><action path="/areaAction" type="com.cargo1.control.AreaAction" validate="false">
<forward name="fail" path="/jsp1.jsp" redirect="true" />
</action>
</action-mappings>问题:运行jsp4.jsp时从request中找不到Area,错误提示如下:
“javax.servlet.ServletException: Cannot find bean Area in scope null”那位大哥帮帮忙给小弟解释一下,万分感谢
Collection coll = new ArrayList();
coll = db.select(..);
if (coll == null || coll.isEmpty())
{return actionMapping.findForward("fail");
}else{
request.setAttribute("Area", coll);
return actionMapping.findForward("success");
}2.jsp4.jsp中获取 Area的值
<logic:iterate id="area" name="Area" type="com.cargo1.model.Area" scope="request">
<tr valign="top" bgcolor="#FFFFFF">
<td height="20" align="center" bgcolor="#FFFFFF"><bean:write name="area" property="name" filter="true"/></td>
<td height="20" align="center" bgcolor="#FFFFFF"><bean:write name="area" property="resume" filter="true"/></td>
</tr>
</logic:iterate>3.struts-config.xml配置action-mapping<action-mappings type="org.apache.struts.action.ActionMapping">
<action path="/areaAction" type="com.cargo1.control.AreaAction" validate="false" scope="request">
<forward name="success" path="/jsp4.jsp" redirect="true" />
</action><action path="/areaAction" type="com.cargo1.control.AreaAction" validate="false">
<forward name="fail" path="/jsp1.jsp" redirect="true" />
</action>
</action-mappings>问题:运行jsp4.jsp时从request中找不到Area,错误提示如下:
“javax.servlet.ServletException: Cannot find bean Area in scope null”那位大哥帮帮忙给小弟解释一下,万分感谢
coll类型为Collection <logic:iterate id="area" name="Area" type="com.cargo1.model.Area" scope="request">
接收的类型为:com.cargo1.model.Area
不是这个原因啊,请再帮忙想想办法。
运行action.do才会跳转到这啊。
“javax.servlet.ServletException: Cannot find bean Area in scope null”页面用 equal 或 present 标签加个判断
名是要对应的.java是分大小写的.
然后你:request.setAttribute("Area", coll);
之后又没在页面中把它取出来:
String Area = (String) request.getAttribute("Area");
所以在页面中没有这个变量的存在,所以取不到值.
<tr valign="top" bgcolor="#FFFFFF">
<td height="20" align="center" bgcolor="#FFFFFF"><bean:write name="area" property="name" filter="true"/></td>
<td height="20" align="center" bgcolor="#FFFFFF"><bean:write name="area" property="resume" filter="true"/></td>
</tr>
</logic:iterate>
<action path="/areaAction" type="com.cargo1.control.AreaAction" validate="false" scope="request">
<forward name="success" path="/jsp4.jsp" />
</action><action path="/areaAction" type="com.cargo1.control.AreaAction" validate="false">
<forward name="fail" path="/jsp1.jsp" />
</action>
<tr valign="top" bgcolor="#FFFFFF">
<td height="20" align="center" bgcolor="#FFFFFF"><bean:write name="area" property="name" filter="true"/></td>
<td height="20" align="center" bgcolor="#FFFFFF"><bean:write name="area" property="resume" filter="true"/></td>
</tr>
</logic:iterate>
<action path="/areaAction" type="com.cargo1.control.AreaAction" validate="false" scope="request">
<forward name="success" path="/jsp4.jsp" />
</action><action path="/areaAction" type="com.cargo1.control.AreaAction" validate="false">
<forward name="fail" path="/jsp1.jsp" />
</action>
这样也不行啊
coll = db.select(..);
if (coll == null || coll.isEmpty())
{return actionMapping.findForward("fail");
}else{
request.setAttribute("Area", coll);
return actionMapping.findForward("success");
}2.jsp4.jsp中获取 Area的值
<logic:iterate id="area" name="Area" scope="request">
<tr valign="top" bgcolor="#FFFFFF">
<td height="20" align="center" bgcolor="#FFFFFF"><bean:write name="area" property="name" /></td>
<td height="20" align="center" bgcolor="#FFFFFF"><bean:write name="area" property="resume" /></td>
</tr>
</logic:iterate>3.struts-config.xml配置action-mapping<action-mappings type="org.apache.struts.action.ActionMapping">
<action path="/areaAction" type="com.cargo1.control.AreaAction" validate="false" scope="request">
<forward name="success" path="/jsp4.jsp" />
</action><action path="/areaAction" type="com.cargo1.control.AreaAction" validate="false">
<forward name="fail" path="/jsp1.jsp" />
</action>
</action-mappings>
你这么改
coll里面装的是Area对象?
redirect="true"
改为false应该就可以了