0

我想我已经为我完成了必要的拼接以允许 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 方法的设置,例如响应头和需要在其上写入的文件。

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

4

2 回答 2

0

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

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

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

之后,我对 java 类所做的更改起作用了

于 2013-04-08T02:50:47.600 回答