现在要"设置权限",因此想通过将数据库权限表中的数据取到"权限名"下拉框中来,好让设置权限的人进行选择.前提是:权限表中是有数据的
权限表的结构如下:
privId(int)权限编号,privName(String)权限名,privDescrip(String)权限描述,parentId(int)父权限编号
权限VO类:
Privilege.java:
对privId,privName,privDescrip,parentId进行setter和getter等
ISettingDAO.java:
//取得所有的权限
public List getAllPrivs()throws Exception;
ISettingDAOImpl.java:
 //取得所有的权限
public List getAllPrivs() throws Exception {
// TODO Auto-generated method stub
List all=null;
String hql="FROM Privilege as p";
Query q=super.getSession().createQuery(hql);
all=q.list();
return all;
}
PrivilegeForm.java:
//权限名
private String privName; /** parentId property */
//父权限号
private int parentId; /** privDescri property */
//权限描述
private String privDescri; /** privId property */
//权限编号
private int privId;
...setter/getter...
SettingAction.java:
List all=null;
try {
all=this.isettingdao.getAllPrivs();
} catch (Exception e)
 {
// TODO Auto-generated catch block
e.printStackTrace();
}

request.setAttribute("all", all);
....
addsetting.jsp:  <html:form action="setting.do">
   权限名 
  <html:select property="privId"> 
    <html:options collection="all" labelProperty="privName" property="privId"/>  
  </html:select> 
现在就是抛出javax.servlet.jsp.JspException: Cannot find bean under name all此异常
该如何解决整个问题,望高手赐教

解决方案 »

  1.   

    从SettingAction要forward到addsetting.jsp
      

  2.   

    俺一直是手写,将列表注入到select的...
    <html:options />从来没有用过,给你顶一下~
      

  3.   

    在struts文件中已经配置了forward到addsetting.jsp
    关键是你帮我看下那个异常吧,它是找不到那个all bean,是什么原因呢
      

  4.   

    你的all是request.setAttribute("all", all); 这样放进去的,所以他是个被保存于request请求的变量。而不是以一个bean。<html:options collection="all" labelProperty="privName" property="privId"/>,你在这里引用固然就不对了。用struts的logic:iterate标签才能正确循环打印出来
    <logic:notEmpty>
    <html:select property="privId"> 
    <logic:iterate>
      <html:options /> 
    </logic:iterate>
    </html:select> 
    </logic:notEmpty>
    其他属性自己加上去就好了
      

  5.   

    这样做,好象还是不行,应该是all中没有取到数据
      

  6.   


    <html:select property="lid">
                  <html:optionsCollection label="privName" value="privId" name="实体存储名"/>
              </html:select>
      

  7.   

    你的all 仅仅是存放的实体的集合,实体有很多的啊,所以你要遍历一下,给个name
      

  8.   

    lid是什么意思?实体存储名是指哪个?
      

  9.   

    你用的标签不对吧,是不是应该用<html:optionsCollection />
      

  10.   

    <html:select property="privId"> 
                  <html:optionsCollection label="privName" value="privId" name="all"/> 
              </html:select>
      

  11.   

    lid 好像是你的select的名,因为他是要提交的嘛相当于html标签的NAME  实体名就是all
      

  12.   

    <%@ taglib  uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <html>
    <c:set var="arr" valure="<%= new package.class.getAllPrivs() >" scope="page"></c:set>
    <select name="">
    <c:foreach var="obj" items=${pageScope.arr}>
      <option value="">${obj.XXXX} </opention>
    </c:froeach>
    </select>
    </html>
      

  13.   


      表达式语言:
           
    <select //这里的你知道>
       <c:foreach var="name" items=${pageScope.var}> 
           <option value="">${name.JavaBean} </opention> 
       </c:froeach>
    </select>