如何在BSP中使用Ajax?

时间:2012-10-11 11:37:10

标签: ajax model-view-controller sap abap sap-bsp

我正在学习SAP中的BSP框架。到目前为止,我已经成功地使我的MVC模型正常工作。

这是我的代码。
查看

<body>
    <z:form>
   <z:input binding="//c/counter"
            invisible="true"/>
    Counter : <z:write binding="//c/counter"/>

    <z:button fcode="incr"
                      text="Increase"/>
    <z:button fcode="decr"
                      text="decrease"/>
    </z:form>
  </body>

控制器
通过fcode,我在Controller中调用“fcode_incr”方法。 'c'是zcl_counter的模型实例。 它有一个属性计数器,将通过这种方法增加。

method fcode_incr.
   c->increment( ).
endmethod.

我希望zcl_model很明显,其代码与此无关。

当我按下“增加”按钮时,服务器发送请求的问题。当它获得响应时,它会刷新页面。所以我得到增加的值。 如何使用Ajax使页面保持不刷新?

我已经尝试过使用“带有flowlogic的XML页面”的Ajax。 比如“Eventhandler - &gt; OnRequest”

request->get_form_field('variable').

它对任何进一步有帮助吗?

正确的 Ajax调用将是

$.ajax({
        url:'ajaxController.do',
        statusCode:{
          404: function(){
            alert("not found");
          }
        },
        success: function(data){
          $('#viewData').html(data);
        }
       }).error(function(){
          alert("failed");
});

1 个答案:

答案 0 :(得分:2)

此链接说明了详细信息:http://www.saptechnical.com/Tutorials/BSP/AJAX/create.htm

但是,实质上;

  1. 在您的bsp页面中集成一些javascript,以便您可以执行ajax,以下是一些选项:

    • 从该链接获取代码
    • 或者更好的解决方案是使用jQuery,或者通过
      • 使用<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/themes/base/jquery-ui.css" type="text/css" />
      • 或上传http://code.jquery.com/jquery-1.8.2.min.js并在您的代码中引用它

    您可以使用jQuery调用ajax调用,如下所示:http://api.jquery.com/jQuery.ajax/

  2. 在BSP项目中创建一个将从AJAX调用的控制器。

  3. 为您的控制器创建一个控制器类,只重新定义REQUEST并将您的逻辑放在那里

  4. 完成。