Jsf 1.2到2.0 ajax迁移

时间:2017-05-12 20:44:25

标签: ajax jsf-2

我们正在从Jsf 1.2迁移到2.0,并且使用servlet通过ajax更新了下拉值的验证问题。

今天发生的事情是当下拉A被改变时,下拉B的值是通过使用servlet的ajax调用获取的,而在Jquery中,B的下拉值是根据Ajax结果而改变的。在迁移到JSF 2.0之后,我们在提交表单时会收到下拉B的无效值问题,因为面对未知更新的下拉值,因此想知道为什么它在JSF 1.1中工作但不能在2.0中工作。 bean是requestcoped

我知道f:ajax有2.0但是由于时间限制,我们将尽可能保持servlet调用ajax。

JSP

  <t:datalist value ='#{bean.locations}' var='loc'>
    <h:selectOneMenu id="country" value="#{loc.country}" onchange ='getStateListThroughServletAjax(this)'>
      <f:selectItems value ='#{loc.countryList}'/>
    </h:selectOneMenu> 
    <h:selectOneMenu id='states' value ='#{loc.state}'>
     <f:selectItems value='#{loc.stateList}'/>
    </h:selectOneMenu>  
  </t:datalist> 

的Javascript

function getStateListThroughServletAjax(country){
   //this get the Statelist based on country selected by hitting the servlet
   var params = 'countryId='+ country.value;
  $.ajax({type: "POST", url: '\loadStates',data: params,
     success: function(response) {
       jsonResult = jQuery.parseJSON(response);
       //setComboOptions for state dropwdown based on JsonResult
        setComboOptionsForState(jsonResult)
     }
    });
 }

任何时候我更改国家/地区我都会获得一个新的州名单,但在保存时我会得到&#34;验证错误:值无效&#34;。

赞赏任何输入

0 个答案:

没有答案