CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

哥们们救我!!!javax.servlet.jsp.JspException: Cannot find bean xxx in any scope

楼主lyhang801()2006-03-03 14:35:26 在 Java / Web 开发 提问

<%@   page   contentType="text/html;   charset=ISO8859_1"   language="java"   import="java.sql.*"   errorPage=""   %>  
  <%@   page   import="java.util.*"%>  
  <%@   taglib   uri="/WEB-INF/struts-bean.tld"   prefix="bean"   %>  
  <%@   taglib   uri="/WEB-INF/struts-html.tld"   prefix="html"   %>  
  <%@   taglib   uri="/WEB-INF/struts-logic.tld"   prefix="logic"   %>  
  <html:html   locale="true">  
  <head>  
  <title>单选框</title>  
  </head>  
  <body>  
  <html:form   action="/login2.do"   >  
  <html:radio   property="radioval"   value="xx"/>ff<br>  
  <html:radio   property="radioval"   value="yy"/>ee<br>  
  <input   type="button"   name="Button"   value="提交"   onClick="tijiao(this.form.color)">  
  </html:form>  
  <%  
  List   list=(List)request.getAttribute("RadioForm");  
  out.print(request.getAttribute("ggg"));  
  %>  
  <logic:notEmpty   name="RadioForm"   property="radioval">  
        <bean:write   name="RadioForm"   property="radioval"/>  
  </logic:notEmpty>  
  </body>  
  </html:html>  
   
  actionform为:  
   
  package   page1;  
  import   org.apache.struts.action.ActionForm;  
  import   org.apache.struts.upload.FormFile;  
  import   org.apache.struts.action.ActionMapping;  
  import   javax.servlet.http.HttpServletRequest;  
  import   org.apache.struts.action.ActionErrors;  
  import   org.apache.struts.action.ActionMessage;  
  public   class   RadioForm   extends   ActionForm{      
  private   String   radioval="xx";  
  public   RadioForm(){  
        }    
  public   void   setRadioval(String   radioval)   {  
  this.radioval   =   radioval;  
  }      
  public   String   getRadioval()   {  
  return   this.radioval;  
  }  
  }  
   
  action为:  
  import   java.util.*;  
  import   javax.servlet.ServletContext;  
  import   javax.sql.DataSource;  
  import   javax.sql.DataSource;  
  import   java.sql.Connection;  
  import   java.sql.Statement;  
  import   java.sql.ResultSet;  
  import   java.sql.SQLException;  
  import   javax.servlet.http.*;  
   
   
  public   final   class   Login2   extends   Action{  
  public   ActionForward   execute(  
  ActionMapping   mapping,  
  ActionForm   form,  
  HttpServletRequest   request,  
  HttpServletResponse   response)   throws   Exception{  
    RadioForm   hff=(RadioForm)   form;  
                            request.setAttribute("RadioForm",hff.getRadioval());  
                                    return(mapping.findForward("success"));  
                                               
  }  
  }  
   
  将<logic:notEmpty   name="RadioForm"   property="radioval">  
        <bean:write   name="RadioForm"   property="radioval"/>  
  </logic:notEmpty>  
  就没错了,我要崩溃了.谢谢哥们们 问题点数:100、回复次数:4Top

1 楼TrampEagle(飞鹰)回复于 2006-03-03 15:24:05 得分 100

这个属于典型的标签误用。  
  是这样的,如果你用一个集合对象,然后你才可以用<logic:notEmpty   name="RadioForm"   property="radioval">,因为这时它的属性不为空,但是你的返回对象仅为一个String,所以是不能用这个标签的,你可以用<bean:write   name="RadioForm"/>.  
  对于list或ArrayList等大的集合对象列表,或是Vector,map,set等的对象封装集合,你应该使用  
                        <logic:present   name="list">  
                                <logic:notEmpty   name="list">  
                                    <logic:iterate   id="beanName"   name="list">  
                                              <bean:write   name="beanName"   property="beanProperty"/>  
                                      </logic:iterate>  
                              </logic:notEmpty>  
                      </logic:present>  
  那么对于一个非String对象,如一个FormBean,你就应该用  
  <bean:write   name="beanName"   property="beanProperty"/>  
  来获取它的属性的值!  
  各种情况时有分别的,所以要搞清楚!Top

2 楼wmzsl(王明哲)回复于 2006-03-03 15:28:12 得分 0

没什么,你应该用JSTL!  
  你的错误就是在范围内找不到变量Top

3 楼lyhang801()回复于 2006-03-03 15:40:09 得分 0

我将jsp改为  
  <%  
   
  request.setAttribute("RadioForm",request.getAttribute("RadioForm"));  
   
  %>  
  <logic:notEmpty   name="RadioForm"   property="radioval">  
        <bean:write   name="RadioForm"   property="radioval"/>  
  </logic:notEmpty>  
   
  action改为  
    RadioForm   hff=(RadioForm)   form;  
     
    //hff.setRadioval("xx");  
    //HttpSession   session=request.getSession();  
                            request.setAttribute("RadioForm",hff);  
                          request.setAttribute("ggg",hff.getRadioval());  
                            return(mapping.findForward("success"));  
   
  还是报同样的错Top

4 楼interpb(曾曾胡,深怕情多累美人!)回复于 2006-03-03 15:42:01 得分 0

楼上都对了  
   
  Struts的标签不是很友好  
   
  最好仔细看看文档Top

相关问题

  • !!!在javax.后没有servlet ?
  • xxx
  • XXX
  • 【struts标签问题】java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagExtraInfo
  • javax下没有servlet的包是什么原因?
  • servlet?
  • servlet
  • Servlet
  • servlet和bean有什么不同吗?如何把bean加到jar里?package XXX 是什么意思??
  • 要支持servlet编程的话,要下载什么,要用到javax的包。哪有下载的?

关键词

得分解答快速导航

  • 帖主:lyhang801
  • TrampEagle

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo