如果评估在JSP上没有按预期工作

时间:2014-03-18 07:20:49

标签: jsp extjs utf-8 utf

我面临着以下代码的烦人问题

if (isExistAndDefined(Ext.get('checkBusyFwd')) && Ext.get('checkBusyFwd').dom.checked){
    if (hg_combo2.getValue() != hgElParms.items['voice_mail_value']
    && hg_combo2.getValue() != hgElParms.items['voice_mail_value_fr']){
        if (isEmptyValue(Ext.DomQuery.select("form[id=frm_hunt_grp]")[0].<%=VoiceGroupUtil.ATTR_HUNT_BUSY_TO_DN_NM %>.value)){
            hg_popupMsg(hgElParms.items['msg_not_empty'], hg_combo2);
            return false;
        }
        if (!checkLengthRange(Ext.DomQuery.select("form[id=frm_hunt_grp]")[0].<%=VoiceGroupUtil.ATTR_HUNT_BUSY_TO_DN_NM %>.value, 10, 15)){
            hg_popupMsg(hgElParms.items['msg_invalid_tn'], hg_combo2);
            return false;
        }
        if (!checkRegExp(Ext.DomQuery.select("form[id=frm_hunt_grp]")[0].<%=VoiceGroupUtil.ATTR_HUNT_BUSY_TO_DN_NM %>.value, /^[0-9]+$/)){
            hg_popupMsg(hgElParms.items['msg_invalid_tn'], hg_combo2);
            return false;
        }
    }
}

voice_mail_value_fr包含法语字符“Boîtevocale”,voice_mail_value包含英文字符“语音邮件”。我的问题是每当我从下拉框中传递英文值即“语音邮件”时,如果评估为假,,这是预期的,但不知何故,对于法语值if if计算为true,if块中的代码获取执行阻碍了正确的流程。

1 个答案:

答案 0 :(得分:0)

让我猜一下这里值的数据类型:

 hg_combo2.getValue() != hgElParms.items['voice_mail_value_fr']

他们是字符串,对吗?在Java中,字符串评估是通过.equals()方法。

!hg_combo2.getValue().equals(hgElParms.items['voice_mail_value_fr'])

对于Java中的字符串,!===仅评估指针等价,而不是内容等价。