如何从ofbiz的ftl文件中正确调用java函数?

时间:2013-04-01 09:11:32

标签: java servlets jxl ofbiz

我想我已经为我做了必要的拼接,允许gui调用java方法。

这是我的ftl文件,其中进程应该开始,这是在小部件屏幕xml文件上,它正确显示内容,但我只是不确定我在这里用来正确调用的参数java类

<form action="<@ofbizUrl>methodToInvoke</@ofbizUrl>" method="POST">
    <input type="submit" value="id"></input>
    <input type="text" name="input"></input>
</form>

这是我控制器上的代码

<request-map uri="methodToInvoke">
    <security https="true" auth="true"/>
    <event type="java" path="com.report.SomeClass" invoke="methodToInvoke"/>
    <response name="success" type="view" value="reports" />
    <response name="error" type="view" value="reports" />
</request-map>

当我运行应用程序并点击按钮时,浏览器上的地址似乎试图调用该方法,但似乎没有任何事情发生。它应该将文件下载到用户,我已经完成了java方法的设置,例如响应头和需要在其上写的文件。

当我点击它时,它实际上没有做任何事情,它只是回到同一页面。

2 个答案:

答案 0 :(得分:0)

使用ofbiz控制器,您可以通过两种方式发回回复:

  1. 更常见的方式:在你的java事件中调用一些服务,或者做一些处理,然后你处理一个request属性的结果,然后在视图中呈现这些属性。如您所见,您的控制器指向一个视图。
  2. 这种情况不太常见,当您需要向用户发送一些无法在视图中呈现的数据时,在这种情况下,您手动在响应对象中写入数据,然后关闭响应流。我假设你正在这样做。在这种情况下,您不应该在控制器中返回视图,因为您已经编写了数据并希望关闭响应流。所以只需将控制器更改为:
  3. <response name="success" type="none" />
    

答案 1 :(得分:0)

我无法专门构建应用程序的构建文件,因为我只是使用整个ofbiz的build.xml,而且似乎没有更新我正在使用的应用程序的修改。

执行此操作后,我在java类上所做的更改工作