我的RichFaces pickList的右侧没有填充默认值

时间:2014-05-29 19:51:57

标签: java jsf richfaces

我想知道是否有人可以请求帮助。我正在经历一个挑战。当我在我的支持bean中做这样的事情时,它可以正常工作:

private String [] testRight;

private String [] testLeft; (with getters and setters)

public void initalizeLeftRightSide2()

    {

        this.testLeft = new String[5];

        this.testRight = new String[2];

        testLeft[0] = "module1";

        testLeft[1] = "module2";

        testLeft[2] = "module3";

        testLeft[3] = "module4";

        testLeft[4] = "module5";



        testRight[0] = "module2";

        testRight[1] = "module4";

    }

但是当我使用我的Module对象时,右边没有填充:

private List<Modules> allModules;

private List<Modules> forSelectedRole;

public void initalizeLeftRightSide3(Long selectedRoleID)

    {

         this.allModules = modRole.getAllModules();

        Roles theRole = modRole.getModuleListByRoleID(selectedRoleID);

        this.forSelectedRole = theRole.getModulesLst();

    }

初始化pickList的我的JSF就是这个,实现了一个转换器:

<rich:pickList  value="#{addModuleToRole.forSelectedRole}" sourceCaption="Available Modules" targetCaption="Selected Modules" listWidth="200px" listHeight="200px" >

                       <f:selectItems value="#{addModuleToRole.allModules}" var="moules" itemValue="#{moules}" itemLabel="#{moules.name}" />

                   <f:converter converterId="modulesConverter" />                      

</rich:pickList>

添加forSelectedRole只是allModules的一个子集。

提前感谢您的任何帮助。

除了Vasil的评论之外,我将initalizeLeftRightSide3(rSelected)方法称为更新附加到特定角色的模块的过程的第二阶段。第一阶段是让用户选择要更新的角色,然后提交给以下代码。

public void processAddModule2Role()     {

    //First get the role selected
    Long rSelected = Long.parseLong(getSelectedRole());

    initalizeLeftRightSide3(rSelected);

    //redirect to addModuleToRole2.xhtml which contains the pickList
    sh.redirect2("/pages/admin/rolemgmt/addModuleToRole2.xhtml");   
}

再次感谢。

0 个答案:

没有答案