首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Struts -在任何范围内都找不到bean

Struts -在任何范围内都找不到bean
EN

Stack Overflow用户
提问于 2012-05-28 00:50:58
回答 1查看 27.2K关注 0票数 2

我使用eclipse来实现原生的Struts和hybernate,它支持一个应用程序在一个页面中显示一系列链接。我得到了一个错误:

代码语言:javascript
复制
javax.servlet.jsp.JspException: Cannot find bean: "ListeActeur" in scope: "session"

我查看了很多网站和论坛,似乎没有什么能解决这个问题。

我的struts-config:

代码语言:javascript
复制
<struts-config>
<form-beans type="org.apache.struts.action.ActionFormBean">
  <form-bean name="ListeActeur" type="mesForms.strust.ListeActeur"/>
  <form-bean name="vérifCritère" type="mesForms.strust.vérifCritère"/>
</form-beans>
<action-mapping>
    </action>   
    <action path="/Liste" 
    parameter="/vue/Invitation.jsp"
    name="ListeActeur     scope="request       validate="false"
                     type="mesAction.struts.ListeActeurAction">  
    <forward name="s" path="/vue/NewFile.jsp" redirect="false" /> 
    </action>
</action-mappings>
</struts-config>

ListeActeurAction:

代码语言:javascript
复制
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest req, HttpServletResponse res) throws Exception {
        System.out.println("Action");

        ListeActeur ListeActeur= (ListeActeur) form;
        String query = "select * from Acteur " ;

        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
         Iterator results = session.createSQLQuery(query).list().iterator();
         List <Acteur> lis = new ArrayList<Acteur>();
         while((results.hasNext()))
         {
             Acteur gg =new Acteur();
            Object[] row = (Object[]) results.next();
            gg.setActeurId((Integer)row[0]);
            gg.setNomActeur((String)row[2]);

             lis.add(gg);
         }
         req.getSession(true).setAttribute("lis", lis);
         session.getTransaction().commit();
         HibernateUtil.getSessionFactory().close();             
        ListeActeur.setLis( lis);
        req.setAttribute("formu", ListeActeur.getLis());

        return mapping.findForward("s");
        }
}

ListeActeur:

代码语言:javascript
复制
public class ListeActeur extends ActionForm {

private  List <Acteur> lis=null;

public List <Acteur> getLis(){
    return lis;}
public void setLis(List <Acteur> lis){this.lis=lis;}
public void reset(ActionMapping mapping, HttpServletRequest request) { 

    lis = new ArrayList<Acteur>();  
}

我真的不知道该怎么办。我是Struts.Thanks的新手!

EN

回答 1

Stack Overflow用户

发布于 2012-05-28 00:55:08

你有

代码语言:javascript
复制
<action path="/Liste" scope="request" .../>

代码语言:javascript
复制
<logic:iterate ... scope="session" >

难怪你会得到这个异常。如果将Struts配置为将表单bean存储在请求中,则不要尝试从JSP中的会话中获取它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10775647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档