报的错误是:
javax.servlet.jsp.JspException: Cannot find bean userMessage in scope request
userMessage是我一个存放用户信息的bean
我的部分action代码:
public class PersonAction extends DispatchAction {public ActionForward logon(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
PersonForm pFrom = (PersonForm) form;
String userId = pFrom.getUserId();
System.out.println("------action--------");
String password = pFrom.getPassword();
Person person = new Person();
person.setUserId(userId);
person.setPassword(password);
boolean flg = DAOFactery.getInstacePersonDAO().queryDAO(person);
if (flg==true){
return mapping.findForward("suc");
}else{
return mapping.findForward("fal");
}
}public ActionForward findUser(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
try {
ResultSet rs = DAOUserMessageFactory.getInstace().findBook();
List ls = new ArrayList();
UserMessage userMessage = null;
while(rs.next()) {
userMessage = new UserMessage();
userMessage.setUserId(rs.getString("userId"));
userMessage.setUserName(rs.getString("userName"));//(rs.getString("userId"));
userMessage.setPassword(rs.getString("password"));//UserId(rs.getString("userId"));
userMessage.setPcode(rs.getString("pCode"));//setUserId(rs.getString("userId"));
userMessage.setPenalsum(rs.getString("penalsum"));//UserId(rs.getString("userId"));
userMessage.setPbsum(rs.getString("pbsum"));//UserId(rs.getString("userId"));
userMessage.setPnote(rs.getString("pnote"));//setUserId(rs.getString("userId"));
userMessage.setPsex(rs.getString("psex"));//UserId(rs.getString("userId")
ls.add(userMessage);
}
request.setAttribute("userMessage", ls);
return mapping.findForward("suc");
} catch (Exception e) {
e.printStackTrace();
return mapping.findForward("fal");
}
}部分jsp代码:<logic:iterate id="user" name="userMessage" property = "userMessage" scope ="request" type = "or.yh.vo.UserMessage">
<tr>
<td><bean:write name = "user" property = "userId"/></td>请大侠指点,

解决方案 »

  1.   

    你报的错误是在jsp的request作用域找不到userMessage 的定义,你确定你在request作用域放了userMessage 吗?
      

  2.   

    问题描述不明确。Cannot find bean userMessage in scope request  会报这种错误的原因不少。只能告诉你再去检查struts的xml的配置。我认为主要在xml和actionform这里出的错误。
      

  3.   

    应该是XML里面的配置问题吧,再好好看看
      

  4.   

    首先检查你的struts配置文件
    然后检查 bean中的属性名跟你jsp页面的是否一致
    然后 你在修改后是否重启小猫
    然后测试下你bean中别的属性字段,是否也有此情况这几步下来应该就能找到问题原因了
      

  5.   


    request.setAttribute("userMessage", ls); 这句不就是把userMessage放在request作用域吗?
      

  6.   

    你怎么写得这么奇怪.. 你把userMessage从数据库中拿出来放进了一个List, 然后你把userMessage放紧request里面, 而不是把list 放进request,  再然后你在jsp页面里面遍历的居然是userMessage. 而不是遍历List. 你不觉得很有问题吗?
      

  7.   

    是不是执行这句话之前出现异常,所以request.setAttribute("userMessage", ls);这句代码没有执行啊?或者是你的struts配置文件对应action加上一个scope="request"属性试试!
      

  8.   

    没描述清楚呀--------------
    bean的xml配置没贴出来
    还有,你是在什么情况下点击,报错的?如果xml没错的话,我怀疑是你的jsp页面属性设置错了
      

  9.   

    jsp代码如下
    logon_success.jsp部分代码如下:
    <body>
      <form action="../user/find.do?method=findUser" method = "post">  
       <table border="1px">
      <tr>
       <td><input type = "submit" value = "查看个人信息"></td>
      </tr>
      <tr>
       <td>身份证号</td><td>姓名</td><td>密码</td><td>借书证号</td><td>可借阅数</td>
       <td>性别</td><td>罚金总额</td><td>备注</td>
      </tr>
       <logic:iterate id="user" name="userMessage" property = "userMessage" scope ="request" type = "or.yh.vo.UserMessage">
       <tr>
       <td><bean:write name = "user" property = "userId"/></td>
      

  10.   

    xml文件部分代码如下:
    <form-beans>

    <form-bean name="registerFrom"
    type="or.yh.form.RegisterFrom" />

    <form-bean name="managerForm"
    type="or.yh.form.ManagerForm" /> <form-bean name="personForm"
    type="or.yh.form.PersonForm" /> <form-bean name="bookForm"
    type="or.yh.form.BookFrom" />
    </form-beans>
    <global-exceptions />
    <global-forwards />
    <action-mappings>

    <action input="/jsp/user/logon.jsp" 
    parameter="method"
    name="personForm" 
    path="/user/logon" 
    scope="request" 
    type="or.yh.action.PersonAction">
    <forward name="fal" path="/jsp/user/errors.jsp" />
    <forward name="suc" path="/jsp/user/logon_success.jsp" />
    </action>

    <action input="/jsp/user/errors.jsp" 
    parameter="method"
    name="registerFrom" 
    path="/user/register" 
    scope="request" 
    type="or.yh.action.PersonAction">
    <forward name="fal" path="/jsp/user/errors.jsp" />
    <forward name="suc" path="/jsp/user/register_success.jsp" />
    </action>

    <!--search person's information  -->
    <action input="/jsp/user/errors.jsp" 
    parameter="method" path="/user/find" 
    scope="request" 
    type="or.yh.action.PersonAction">
    <forward name="fal" path="/jsp/user/errors.jsp" />
    <forward name="suc" path="/jsp/user/logon_success.jsp" />
    </action>
      

  11.   

    经过16楼的指点,确实不报错了,但是任然现实不了数据,经过调试[color = #FF0000]request.setAttribute("userMessage", ls);[/color]确实走到了,而且ls不为空,但是页面始终不显示查询的数据,求解
      

  12.   

     试试放到 session    里面试试
      

  13.   

    <logic:iterate id="user" name="userMessage" property = "userMessage" scope ="request" type = "or.yh.vo.UserMessage">我也不是特明白jsp,不过觉得把property删除了试试吧,这样感觉不用加也行吧。
      

  14.   

    另外,请LZ看看取得的ls用toString()打印一下看看里头啥内容。
      

  15.   

    如果删掉了就会报这个异常啊:javax.servlet.ServletException: javax.servlet.jsp.JspException: No getter method for property userMessage of bean userMessage