当前位置: 代码迷 >> JBoss >> seam框架提交表单有关问题
  详细解决方案

seam框架提交表单有关问题

热度:3301   发布时间:2013-02-26 00:00:00.0
seam框架提交表单问题
最近在学习seam框架,遇到一个问题:
在用rich:dataTable中有一个集合,集合中包含另一个集合,h:selectManyCheckbox 就是另一个集合迭代出来的具体权限
用户在勾选需要的权限提交数据,后台接收不到这个集合中集合的值。这个问题要怎么解决?
Java code
                    <rich:dataTable id="oaResourceList" value="#{oaResourceList.resultList}" var="oaResource">                        <rich:column sortOrder="ASCENDING" sortBy="#{oaResource.resourceName}">                            <f:facet name="header">                                <h:outputText value="资源名" />                            </f:facet>                            <h:outputText value="#{oaResource.resourceName}" />                        </rich:column>                        <rich:column>                            <f:facet name="header">                                <h:outputText value="操作名" />                            </f:facet>                            <h:selectManyCheckbox value="#{oaRoleHome.opers}">                                <s:selectItems value="#{oaResource.opers}" var="oaResourceOper" label="#{oaResourceOper.operName}"/>                                <s:convertEntity/>                            </h:selectManyCheckbox>                        </rich:column>                    </rich:dataTable>


Java code
package org.jboss.oa.session;import java.util.ArrayList;import java.util.List;import org.jboss.seam.annotations.Name;import org.jboss.seam.annotations.Begin;import org.jboss.seam.annotations.web.RequestParameter;import org.jboss.seam.framework.EntityHome;import org.jboss.oa.entity.OaPermission;import org.jboss.oa.entity.OaResourceOper;import org.jboss.oa.entity.OaRole;@Name("oaRoleHome")public class OaRoleHome extends EntityHome<OaRole>{    /**     *      */    private static final long serialVersionUID = 3857626513412738271L;    @RequestParameter    Long oaRoleId;        private List<OaResourceOper> opers;    private List<OaPermission> perms;    private String testStr;        @Override    public Object getId()    {        if (oaRoleId == null)        {            return super.getId();        }        else        {            return oaRoleId;        }    }    /**@功能: @see org.jboss.seam.framework.EntityHome#update()     * @author : lh     * @2009-4-24 下午03:57:49     */    @Override    public String update() {        for(OaPermission perm : perms)        {            getEntityManager().remove(perm);        }        perms = new ArrayList<OaPermission>();        System.out.println("test:"+testStr);        for(OaResourceOper oper : opers)        {            OaPermission perm = new OaPermission();            perm.setAction(oper.getOperMethod());            perm.setOaResourceOper(oper);            perm.setRecipient(instance.getName());            perm.setTarget(oper.getOaResource().getComponentName());            perm.setOaRole(instance);            getEntityManager().persist(perm);            perms.add(perm);        }        instance.setOaPermissions(perms);        getEntityManager().merge(instance);        return super.update();    }    /**     * @return the opers     */    public List<OaResourceOper> getOpers() {        return opers;    }    /**     * @param opers the opers to set     */    public void setOpers(List<OaResourceOper> opers) {        this.opers = opers;    }    /**     * @return the perms     */    public List<OaPermission> getPerms() {        return perms;    }    /**     * @param perms the perms to set     */    public void setPerms(List<OaPermission> perms) {        this.perms = perms;    }    public String getTestStr() {        return testStr;    }    public void setTestStr(String testStr) {        this.testStr = testStr;    }    }