${userInfo.userName} 换成  <%=userInfo.getUserName()%> 

解决方案 »

  1.   

    <jsp:setProperty name="userInfo" property="*" />
    lz这个jsp指定是把界面上的值摄入到这个实体bean中,相当需在实体类中进行了set方法,而lz却没有set相应的值到实体bean中所以当然取出的是空的。
    如果lz采用<jsp:setProperty name="userInfo" property="*" value="111"/>应该就可以了,但是要注意数据的类型。
      

  2.   

    <jsp:setProperty name="userInfo" property="*" value="111"/>这个将所以的属性进行设值所以要注意实体类中字段的类型。
      

  3.   

    页面每次刷新后你get的对象又是一个新的,里面的属性的值当然就不再存在咯。
      

  4.   

    这个是没有关系的,你说的是jsp方式get值,我这里用的是EL,作用是一样的。
      

  5.   

    是,但是你userName是公共的?一般不是应该是私有的么,用get set来读写
      

  6.   

    你这是给userInfo设初值,按你的建议改了以后,结果网页直接报exception了
    不知道你有没有注意到property是用的“*”来表示的
    也许是我没有误解了你的意思,呵呵。
      

  7.   

    这是javabean的内透视功能啊,它会自动调用getter方法的
      

  8.   

    不明白这句话,重新装载a.jsp的时候会看bean是否依然存在,既然它的生命期是session的,应该会沿用开始生成的这个bean实例啊。
      

  9.   

    呵呵,还是感谢你来参与讨论。学JSP挺有意思的,所以很高兴有这么多朋友一起来探讨研究。
      

  10.   

    借机会问个问题也
    <jsp:setProperty name="userInfo" property="*" />这里是否等价于
    if (request.getParameter("userName") != null)
    userInfo.setName(request.getParameter("userName"));
    假设只有这一个属性,
    刚接触javabean今天试了下,好像如果scope="session",在session中getAttribute可以找到这个userInfo scope="request"的话找不到
    然后就是上面那个问题,如果在scope="session"时,if (request.getParameter("userName") != null)
    userInfo.setName(request.getParameter("userName"));
    正常运行
    <jsp:setProperty name="userInfo" property="*" />好像不能正常赋值
      

  11.   

    楼主试试把
    <jsp:useBean id="userInfo" scope="session"  
      class="prj.UserInfoBean">
      <jsp:setProperty name="userInfo" property="*" />
      </jsp:useBean>
    改成
    <jsp:useBean id="userInfo" scope="session"  
      class="prj.UserInfoBean"/>
      <jsp:setProperty name="userInfo" property="*" />我这里如果这样改了之后当scope="session"时可以正常赋值了求解释
      

  12.   

    总算搞明白这个问题了。你写的这两种是有很大区别的,第一次碰到usebean时,生成bean实例并调用里面setproperty,当在其他页面再碰到这个实例时,因为bean的生命期是session,所以依然有效,使用已有的bean,而不调用程序块里的setproperty动作。对于第二种情况,无论bean是否存在,都会调用setproperty动作,从而完成setter方法。
    我这边的问题也终于解决了,主要有三个方面的问题:
    1。在servlet里面居然又定义了一个名字为bean的实例,因此判断逻辑实际上是针对这个实例,虽然不会影响我碰到的setproperty无效现象,但仍然是一个错误。
    2。就是你说的这个问题,setproperty动作要放到usebean外面
    3。在submit的目标页面上居然没有setproperty动作,我还以为在submit页面上有setproperty时就会调用setter方法呢。还是学习时间短,好多概念都不熟。
    不管怎样,问题搞定了,结贴,散分。鉴于我自己解决了这个问题,也回答了你的疑问,试试看我能不能也拿10分玩玩,呵呵。