在Struts框架中,一个Action的excute()方法中执行request.setAttribute("client", client);并转发到另一个jsp页面。
如果在页面中执行:
 <%=((Client)request.getAttribute("client")).getCUserName()%>
则能正常得到结果。
但如果换在EL表达式:
 ${client.cUserName}
则出错:javax.el.PropertyNotFoundException: Property 'cUserName' not found on type com.netPhoneBook.Module.Client好奇怪呀~~~~~~ 大家快帮我想想是怎么回事?? 感激涕零中。

解决方案 »

  1.   

    你先试下  requstScope.client 看能获取到不能
      

  2.   

    看下你的Client类里面cUserName这个属性存不存在
      

  3.   

    你看下getCUserName()中return的那个属性明与你的client.cUserName()样不,应该是属性名没对上
      

  4.   

    应该是你那个 cUserName 属性的问题,仔细检查下嘛
      

  5.   

    原因:
    1、Client.java文件中没有cUserName属性;
    2、Client.java文件中没有getCUserName()方法;
      

  6.   

    这个也有影响?LZ没有必要在里边设置setAttribute();client只要是你的action 的属性即可,你的错误很诡异。
    是不是你的EL表达式放在<%=${client.cUserName} %>?
      

  7.   

    ${client}你看看会不会有输出?
      

  8.   

    属性名的规范上第首写字母和第二个字母不要大写。你的那个cUserName属性能够通过它的get方法访问到,显示get方法是没问题的。把属性改成 cuserName试下吧。应该不会有问题的。一个get方法 getCUserName()。看起来也觉得别扭啊。
      

  9.   

    com.netPhoneBook.Module.Client这个包下Client.java没有那个cUserName的属性