关于struts中html:select 出现Cannot find bean: "list" in

问题描述

我在网上找到个例子, 仿照做. 静态的没有问题. 但动态的就出来问题了. 各位帮忙看看问题怎么解决呢.Servlet.service() for servlet jsp threw exceptionjavax.servlet.jsp.JspException: Cannot find bean: "list" in any scopeAction相关代码:public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ModelListForm modelListForm = (ModelListForm) form; List<Objects> modelList ; modelList = modelMgr.getAllModelNames(); request.setAttribute("list", modelList); return mapping.getInputForward(); }Objects类里面有 id 和 name两个属性. 也有相关的 getter, setter方法.ActionForm相关代码:private String select;public String getSelect() { return select; }public void setSelect(String select) { this.select = select; }JSP相关代码:<html:form action="/modelList.do"> <html:submit /> <html:select property="select"> <htmlptionsCollection name="list" label="name" value="id" /> </html:select> </html:form>struts配置文件相关: <action attribute="modelListForm" input="/pages/modelBody.jsp" name="modelListForm" path="/modelList" scope="request" />网上那个例子说, 如果直接在地址栏输入...modelList.do而不是/pages/modelBody.jsp就不会有这个问题. 但我想先读入页面, 然后按submit后, 再读入动态数据. 应该如何解决呢?问题补充:谢谢1L的回复. 但是这个方法是不是只能判断 list属性 是否在当前scope呢? 可我的问题现在报错说,list属性不存在。这个应该如何解决呢?

解决方案

楼主可以嵌套标签,用<logic:present>和<logic:notPresent>,<logic:present>用于检查request对象传递的参数是否存在,存在则执行标签体的内容,而<logic:notPresent>则是在<logic:present>标签检查的对象不存在的时候,执行标签体的内容。你的代码可以这样改:<html:form action="/modelList.do"><html:submit /><logic:present name="list"><html:select property="select"> <htmlptionsCollection name="list" label="name" value="id" /> </html:select> </logic:present><logic:notPresent name="list">//不存在时,你要执行的代码</logic:notPresent>不知道楼主要的是不是这样的效果,希望对楼主有所启发
解决方案二:
他是判断这个list属性,对应的Bean是否存在,也就是说,这个代码的效果就是,request.getAttribute("list");如果这个方法返回的是空,他就会执行<logic:notPresent>里内容。

时间: 2024-10-04 03:22:13

关于struts中html:select 出现Cannot find bean: &amp;quot;list&amp;quot; in的相关文章

struts标签-struts下的jsp文件中html:select 下的各个属性有哪些

问题描述 struts下的jsp文件中html:select 下的各个属性有哪些 struts下的jsp文件中html:select 下的属性property,styleIdonchange分别是什么意思啊这行struts的jsp代码是什么意思,哪位朋友能说一下,十分感谢 解决方案 1.property 是 ActionForm里定义的变量,就相当于html标签里面的name属性如 被解析后和html语句是一样的只是用了struts的property属性就得有想对应formBean,否则报错.2

简化繁琐的赋值——反射在Jdbc和Struts中的应用

缘起在Jdbc应用中,我们经常需要有这么样的一个Javabean:当我们从数据库里取值时,我们希望把对应的值赋给Javabean,而后再操作Javabean进行各种业务处理:而我们保存数据的时候,也希望把经过业务处理后的值赋给Javabean,再由该Javabean与Jdbc交互,将数据保存在数据库里. 而在Struts应用中,我们经常要跟ActionForm或DynaActionForm打交道,例如从业面取得用户输入的数据,在Struts应用中,我们实际上是从ActionForm中取得数据:而

Struts中的Action类的工作机制

Struts中的Action类的工作机制  所有的Action类都是org.apache.struts.action.Action的子类.Action子类应该覆写父类的execute()方法.当ActionForm Bean被创建,并且表单验证顺利通过后,Struts框架就会调用Action类的execute()方法.execute()方法的定义如下:    public ActionForward execute(ActionMapping mapping                   

在struts中使用国际化(i18n)

在struts中使用国际化(i18n)    i18n可以满足对系统的国际化,它的原理就是将页面上的所有标志都放到一个消息资源文件中,不同的语言要提供不同的消息资源文件,当用户登录系统是,系统就是根据你登录的语言,选择不同的消息资源文件显示出来,这样你就可以看到不同的效果了.    一.配置文件的设置    其实i18n的使用还是比较简单的,首先你要在struts-config.xml配置文件中配置消息资源文件的路径,如下所示:----------------------------------

ORACLE中实现SELECT TOP N的方法

1.在ORACLE中实现SELECT TOP N 由于ORACLE不支持SELECT TOP语句,所以在ORACLE中经常是用ORDER BY跟ROWNUM的组合来实现SELECT TOP N的查询. 简单地说,实现方法如下所示: SELECT 列名1...列名n FROM (SELECT 列名1...列名n FROM 表名 ORDER BY 列名1...列名n) WHERE ROWNUM <= N(抽出记录数) ORDER BY ROWNUM ASC 下面举个例子简单说明一下. 顾客表cust

Struts中关于用户权限限定的建议

关于web系统的权限限定问题,可能有很多的办法,我在这里说一下自己的一些小技巧,起到抛砖引玉的作用,忘各位指正: 系统中一个角色包含多个用户,角色和用户之间最好采用一对多,以免发生混乱: 自系统初起的时候,系统只有一个超级用户(例如root),有两个默认角色,即游客角色和注册用户角色: 超级用户可以在后续管理中添加角色,默认角色不能删除,其他角色的删除中如果这个角色下有用户,可以采取不允许删除或删除后这些用户的角色自动转为注册用户角色: 每个角色用户访问系统某些功能模块的权利,某个角色是否可以访

在Struts中使用Validator验证框架详解

Validatro框架以成为Jakarta的公共项目的一部分,可以从http://jakarta.apache.org/commons/下载单独的Validator框架,在Struts中已经呆了这个框架. Validator主要依赖两个jar包 Jakarta-oro.jar:-提供一组处理文本的类,具有文本替换.过滤.和分割功能. Commons-validator.jar:提供了一个简单.可扩展的验证框架,包含了通用的验证方法和验证规则. 在用Struts中用这个框架,需加入这两个包,用起来

ASP中获得Select Count语句返回值的方法

  这篇文章主要介绍了ASP中获得Select Count语句返回值的方法,一般用在统计数据时使用Select Count语句,以此一获得查询到的行数,需要的朋友可以参考下 我们一般统计数据库记录时会用到Select Count(*)语句,当我们使用SQL Server的查询分析器时,直接输入Select Count(*) From 表名即会统计出该表中有几条记录,可是我们用ASP来实现时该怎么返回值呢?即如何输出统计出来的记录总数呢?请接着往下看. 其实我们只要给SQL语句的查询结果取个别名即

javascript-js中使用select控件时需要加上form吗?

问题描述 js中使用select控件时需要加上form吗? 在页面中,有表单form1 里面有一个select控件 名称为category.而在js中设置select时,如果document.category.options[tt]=new Option(""""");就无法创建成功. 但是使用document.form1.category.options[tt]=new Option(""""");就可以