为什么总提示Cannot find bean: "UserForm" in any scope

bingxuecai 2008-05-21 11:06:52
配置文件中是这样的:
<form-bean name="UserForm" type="com.liukai.struts.form.UserForm" />
<action
name="UserForm"
path="/test"
type="com.liukai.struts.action.TestAction">
<forward name="success" path="MyTest.jsp" />
</action>

Action代码是:

public class TestAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws InstantiationException, IllegalAccessException, SQLException {
ActionErrors errors=new ActionErrors();
HttpSession session=request.getSession();
//LoginForm Loginuser=(LoginForm)session.getAttribute("Loginuser");
//String username=Loginuser.getUsername();
String username="liukai";
UserForm user=new UserForm();
ArrayList users = new ArrayList();
DB db = new DB();
String sql="select user_password,user_truename,user_useable,user_branch from "+Content.TB_USER+" where "+Content.USERNAME+"='"+username+"'";
ResultSet rs=(ResultSet) db.getRs(sql);
while(rs.next()){
user.setUsertruename(rs.getString("user_truename"));
user.setUserable(rs.getInt("user_useable"));
user.setUserbranch(rs.getString("user_branch"));
}
users.add(user);
request.setAttribute("users",users);
return mapping.findForward("success");
}
}

jsp中代码是

<logic:iterate id="users" name="UserForm">
<tr>
<td><bean:write name="user" property="usertruename"/></td>
<td><bean:write name="user" property="userable"/></td>
<td><bean:write name="user" property="userbranch"/></td>
</tr>
</logic:iterate>

为什么提示:Cannot find bean: "UserForm" in any scope
我建立了UserForm这个bean啊 而且大小写没有问题!!
请指点 !!!!!!!!

...全文
909 33 打赏 收藏 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
简单才是美 2010-08-06
  • 打赏
  • 举报
回复
楼主给你一个建议,要么把分给几个重点的回答,要么最后给出正确的解决方法,这样让后来有同样错误的人看得好纠结啊
zhangronghua309 2009-02-08
  • 打赏
  • 举报
回复
还有就是你的form-bean应该配置在form-beans里面,action应该配置在action-mappings里面吧
zhangronghua309 2009-02-08
  • 打赏
  • 举报
回复
如果你要转入的页面是就在WEB-INF下那么就直接在你的转入页面名字之前加上“/”,如果是转入WEB-INF下的test文件夹下的MyTest.jsp页面的话,那么在path这个参数就设置为"/test/MyTest.jsp".这样就可以了
zhangronghua309 2009-02-08
  • 打赏
  • 举报
回复
你的forward标签中的path属性写错了,必须以“/”开头,不然你这样肯定就找到错误的页面,当然也就不会找到这个form啦
lifanfly 2008-05-22
  • 打赏
  • 举报
回复
UserForm user=new UserForm();
修改为
UserForm user = (UserForm)form;
bingxuecai 2008-05-22
  • 打赏
  • 举报
回复
我按照以上各位指出的错误都改正过来了
最后还是提示原来的错误

后来我用EL表达式改写了输出语句
   <c:forEach items="aa" var="user">
<tr>
<td>${user.usertruename}</td>
<td>${user.userable}</td>
<td>${user.userbranch}</td>
<td>${user.useremail}</td>
</tr>
</c:forEach>

就没有出现问题了
我tomcat用的是6.0是不是服务器的问题呢?
siyue_qi 2008-05-22
  • 打赏
  • 举报
回复
<logic:iterate id="user" name="users">
<tr>
<td><bean:write name="user" property="usertruename"/></td>
<td><bean:write name="user" property="userable"/></td>
<td><bean:write name="user" property="userbranch"/></td>
</tr>
</logic:iterate>
siyue_qi 2008-05-22
  • 打赏
  • 举报
回复
public class TestAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws InstantiationException, IllegalAccessException, SQLException {
ActionErrors errors=new ActionErrors();
HttpSession session=request.getSession();
//LoginForm Loginuser=(LoginForm)session.getAttribute("Loginuser");
//String username=Loginuser.getUsername();
String username="liukai";
UserForm user=new UserForm();
ArrayList users = new ArrayList();
DB db = new DB();
String sql="select user_password,user_truename,user_useable,user_branch from "+Content.TB_USER+" where "+Content.USERNAME+"='"+username+"'";
ResultSet rs=(ResultSet) db.getRs(sql);
while(rs.next()){
UserForm user=new UserForm();
user.setUsertruename(rs.getString("user_truename"));
user.setUserable(rs.getInt("user_useable"));
user.setUserbranch(rs.getString("user_branch"));
users.add(user);
}
users.add(user);
request.setAttribute("users",users);
return mapping.findForward("success");
}
}
siyue_qi 2008-05-22
  • 打赏
  • 举报
回复
public class TestAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws InstantiationException, IllegalAccessException, SQLException {
ActionErrors errors=new ActionErrors();
HttpSession session=request.getSession();
//LoginForm Loginuser=(LoginForm)session.getAttribute("Loginuser");
//String username=Loginuser.getUsername();
String username="liukai";
UserForm user=new UserForm();
ArrayList users = new ArrayList();
DB db = new DB();
String sql="select user_password,user_truename,user_useable,user_branch from "+Content.TB_USER+" where "+Content.USERNAME+"='"+username+"'";
ResultSet rs=(ResultSet) db.getRs(sql);
while(rs.next()){
UserForm user=new UserForm();
user.setUsertruename(rs.getString("user_truename"));
user.setUserable(rs.getInt("user_useable"));
user.setUserbranch(rs.getString("user_branch"));
users.add(user);
}
users.add(user);
request.setAttribute("users",users);
return mapping.findForward("success");
}
}


<logic:iterate id="user" name="users">
<tr>
<td><bean:write name="user" property="usertruename"/></td>
<td><bean:write name="user" property="userable"/></td>
<td><bean:write name="user" property="userbranch"/></td>
</tr>
</logic:iterate>
xiaozhang0731 2008-05-22
  • 打赏
  • 举报
回复
你怎么这么笨啊!这么多人都说了你还不清楚吗?
我帮你再说一下
是你在action 里写的
这个request.setAttribute("users",users);东东
和jsp里的这个东东
<logic:iterate id="users" name="UserForm">
牛头不对马尾啊!
你给了张三钱却让李四去干活
你说行吗
应该这样在jsp里这样写
<logic:iterate id="user" name="users">

<tr>
<td> <bean:write name="user" property="usertruename"/> </td>
<td> <bean:write name="user" property="userable"/> </td>
<td> <bean:write name="user" property="userbranch"/> </td>
</tr>
</logic:iterate>

bingxuecai 2008-05-22
  • 打赏
  • 举报
回复
唉,烦恼啊
bingxuecai 2008-05-22
  • 打赏
  • 举报
回复
各位指点一下!!
我现在真搞不懂问题在哪了?
bingxuecai 2008-05-22
  • 打赏
  • 举报
回复
我已经按以上各位所说的该了
为什么还是提示相同的错误呢!!!!!!!!!!!!!!!
KingRat525 2008-05-22
  • 打赏
  • 举报
回复
UserForm user=new UserForm();
这个地方,我感觉应该用成UserForm user=(UserForm)form;而不是new一个UserForm对象,而是将请求中的
form转换成UserForm
siyue_qi 2008-05-21
  • 打赏
  • 举报
回复
缕缕思路先,楼主。

Action中:

ArrayList users = new ArrayList();
DB db = new DB();
String sql="select user_password,user_truename,user_useable,user_branch from "+Content.TB_USER+" where "+Content.USERNAME+"='"+username+"'";
ResultSet rs=(ResultSet) db.getRs(sql);
while(rs.next()){
user.setUsertruename(rs.getString("user_truename"));
user.setUserable(rs.getInt("user_useable"));
user.setUserbranch(rs.getString("user_branch"));
}
users.add(user);
request.setAttribute("users",users);

那么jsp中:

<logic:iterate id="user" name="users">
<tr>
<td><bean:write name="user" property="usertruename"/></td>
<td><bean:write name="user" property="userable"/></td>
<td><bean:write name="user" property="userbranch"/></td>
</tr>
</logic:iterate>



bingxuecai 2008-05-21
  • 打赏
  • 举报
回复
求解啊 !!!
bingxuecai 2008-05-21
  • 打赏
  • 举报
回复
siyue_qi ,zhuyl_wind ,天天happy
我按你们说的改了,现在还是提示相同的错误啊!!!!!!!
bingxuecai 2008-05-21
  • 打赏
  • 举报
回复
我在jsp页面中 加了一段
<html:form action="test">
..../之前jsp代码
</html:form >
现在的问题是:
Cannot create iterator for this collection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException( pageContextImpl.java:850)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.MyJsp001_jsp._jspService(MyJsp001_jsp.java:197)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

这是什么原因呢?
3q!!!
dd121011 2008-05-21
  • 打赏
  • 举报
回复
提交的时候提到action里去的 action = "Action"
dd121011 2008-05-21
  • 打赏
  • 举报
回复
配置文件的问题。。。。request.setAttribute("UserForm",users);
加载更多回复(13)
内容概要:本文介绍了“Java+大数据+AI架构师实战营”这一系统性人才培养方案,旨在帮助具备Java基础的开发者在26周内完成向融合Java、大数据与人工智能技术的复合型架构师跃迁。课程围绕五大核心模块展开:架构基本功(微服务演进、分布式锁与ID设计)、数据引擎(亿级数据存储与Flink CDC实时同步)、网关与可观测性(Gateway源码改造、限流与日志采样)、AI融入架构(推荐系统、大模型应用开发)以及架构思维培养。通过“小绿书”项目贯穿始终,强调整合三域技术的系统设计能力而非孤立技能堆叠。; 适合人群:具备1-5年Java开发经验,希望突破技术瓶颈、拓展大数据与AI领域能力的中高级研发人员;适合有志于成长为全栈架构师的技术从业者。; 使用场景及目标:①掌握高并发、分布式系统下的架构设计方法;②理解海量数据的存储分层与实时计算架构;③学会将AI能力如大模型、RAG、向量检索等深度集成到业务系统中;④构建完整的系统可观测性与网关控制能力;⑤形成跨技术域的系统性架构思维。; 阅读建议:此资源以实战项目驱动学习,强调动手实践与架构思维并重。建议学习者结合课程代码与实际调试,深入理解每一环节的技术选型与设计权衡,尤其关注真实生产环境中难以复现的复杂约束,从而建立可迁移的架构“手感”。

81,108

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧