验证失败后如何保存JSF 1.2列表框的值

时间:2016-03-17 11:52:20

标签: javascript jsf listbox

我正在使用JSf 1.2,我目前正在该列表框中显示一个列表。现在我的问题是我从该列表框中选择值并且表单已提交。因此,当返回页面时,所选值将丢失。我将如何保存我的代码中的值?我正在发布代码

 <h:panelGroup styleClass="panelGroup" id="grpMemDep"> 
                                            <h:selectOneMenu id="memDepCode" styleClass="inputfont" onchange="getMemberDepInfo();">
                                                <f:selectItem itemLabel="----SELECT----" itemValue="0"/>
                                                    <f:selectItems id="selectItems32"
                                                        value="#{searchUserProfileBean.memberDependentList}" />
                                                </h:selectOneMenu>

                                        </h:panelGroup>

                                      <hx:commandExButton type="submit" value="submit"
                                                styleClass="commandExButton"
                                                id="getAllMemberDepInformation" action="#{pc_userManagementProfile.doGetAllMemDepInfoAction}" style="display:none">

                                            </hx:commandExButton>   




   function getMemberDepInfo(){


document.getElementById('vwmyUserProfile:myUserProfileForm:getAllMemberDepInformation').click();
}

并且在服务中我使用这个java代码来获取列表框值

 List<DependentDTO> dependentList = new MemberProxy()
            .getDependentListFormMember( loggedInUser
                    .getUserAccessList().get(0).getClientCode(),
                    loggedInUser
                    .getUserAccessList().get(0).getCertificateNumber());
            List<SelectItem> selList=new ArrayList<SelectItem>();

            for(DependentDTO depDTO:dependentList){

                SelectItem sel = new SelectItem();
                sel.setLabel(depDTO.getNameFirst());
                sel.setValue(depDTO.getCertNumber()+"#"+depDTO.getClientCode()+"#"+depDTO.getDependentCode());
                selList.add(sel);   
            }
             mem = new MemberProxy().getMemberDetails(loggedInUser
                        .getUserAccessList().get(0).getClientCode(), loggedInUser
                        .getUserAccessList().get(0).getCertificateNumber());

             SelectItem sel = new SelectItem();
             sel.setLabel(mem.getNameFirst());
             sel.setValue(mem.getCertNumber().toString().trim()+"#"+mem.getClientCode().toString().trim());
             selList.add(sel);

            memberDependent.setMemberDependentList(selList);

我正在使用隐藏按钮提交。请告诉我如何保存值

1 个答案:

答案 0 :(得分:0)

在searchUserProfileBean中,您可以使用getter和setter添加私有属性

<h:selectOneMenu id="memDepCode" styleClass="inputfont" value="#{searchUserProfileBean.listboxValue}" onchange="getMemberDepInfo();">

在您的信息页

 /**
 * Convert RGB to XY
 */
function RGBtoXY(red,green,blue){
    red = (red > 0.04045) ? Math.pow((red + 0.055) / (1.0 + 0.055), 2.4) : (red / 12.92);
    green = (green > 0.04045) ? Math.pow((green + 0.055) / (1.0 + 0.055), 2.4) : (green / 12.92);
    blue = (blue > 0.04045) ? Math.pow((blue + 0.055) / (1.0 + 0.055), 2.4) : (blue / 12.92);
    var X = red * 0.664511 + green * 0.154324 + blue * 0.162028;
    var Y = red * 0.283881 + green * 0.668433 + blue * 0.047685;
    var Z = red * 0.000088 + green * 0.072310 + blue * 0.986039;
    var fx = X / (X + Y + Z);
    var fy = Y / (X + Y + Z);
    return [fx.toPrecision(4),fy.toPrecision(4)];
}

现在您已绑定所选值。