action 代码为:
// 获取公司下拉列表的list
List listCompany = new ArrayList();
listCompany = companyServiceAction.list("from Company c");
request.setAttribute("listCompany", listCompany);
jsp代码为:
公司名称
name="listCompany" label="company.name" value="company.id" />
/html:select
我的问题是:
在页面打开的时候提示javax.servlet.jsp.JspException: Cannot find bean listCompany in any scope.就是找不listCompany. 谢谢各位!
如果你刚进到页面 这样是绝对路径 没有通过action 你想 jsp页面中要用到的变量也就是list集合可能有值么? 它的值怎么来? 你是在调用action请求后 赋值给他的
此时你的报错信息是在scope(作用域)没有找到对象,也就是说可能你在xml中配置action的时候也许忘写scope属性了。
[code="xml"] name="SysUserAF"
path="/login"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy"
parameter="operate">
[/code]
这是struts1.x的配置方式
在一个你的 举例:userForm动作表单有一个如下所示的ArrayList类型的userList属性,相应的set,get方法,通过在action中设置好userForm后,request.setAttribute("userForm",userForm);
在jsp页面:
property="userList"/>
/html:select
对于listCompany对象,未生成
public void setListCompany(ListCompany listCompany)
和
public ListCompany getListCompany()
方法吧
你没有设置取值范围 比如:request session application
scope="request"
看看你的xml中写没写
My God,我还以为是Struts2
没有循环list吧。。。
页面直接使用request.getattribute("listCompany");能获取到不?
[quote]我测试过了在action可以获取到了list
可我那个页面刚进去的时候没有调用该action
这样的话 action里面的list能够在页面直接获取吗? [/quote]
例如你的Action为
findAction()
页面为
show.jsp
那么你必须通过访问findAction,然后该action返回跳转到show.jsp页面才能获取到listCompany