2013-04-01 3 views
0

Я думаю, что я уже сделал необходимое сращивание для меня, чтобы позволить gui вызвать метод java.Как правильно вызвать функцию java из файла ftl в inbiz?

Это мой 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-методе, таком как заголовки ответов и файл, который должен быть написан на нем.

Когда я нажимаю на него, он ничего не делает, и он просто возвращается на ту же страницу.

ответ

0

я не смог построить Buildfile из applcation СПЕЦИАЛЬНО, потому что я только с помощью build.xml для всей OFBiz и не похоже, обновляют модификации приложения, которое я использую.

После этого изменения, которые я сделал на классе java, работали

0

С контроллерами OFBiz, вы можете отправить обратно ответ двумя способами:

  1. Предпочитаемый более распространенным способом: в вашем случае Java вы вызываете некоторые услуги, или сделать некоторую обработку, то результат обработки атрибут запроса, а затем визуализировать эти атрибуты в представлении. Как вы можете видеть, ваш контроллер указывает на представление.
  2. Это менее распространенный случай, когда вам нужно отправить пользователю некоторые данные, которые невозможно отобразить в представлении, в этом случае вы вручную записываете данные в объект ответа и закрываете поток ответа. Я полагаю, вы делаете именно это. В этом случае вы не должны возвращать представление в своем контроллере, потому что вы уже написали данные и, надеюсь, закрыли поток ответов. Так что просто изменить свой контроллер к этому:
<response name="success" type="none" /> 
+0

спасибо за предложения. Я пробовал # 2, у меня есть метод, который создает книгу и записывает ее в ответ. Но когда я вызываю метод, я не получаю никакого файла, и мне предоставляется пустой экран. В адресной строке я вижу вызываемый метод и некоторые переданные параметры, но файл не был загружен. Заголовки и ContentType были правильно включены –

+0

привет Билгин, как вы думаете, я могу использовать jspViewFileHandler, чтобы сделать это старым способом j2ee? –