как правилно да извикам java функция от ftl файл в 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, като заглавките на отговора и файла, който трябва да бъде написан върху него.

Когато щракна върху него, той всъщност не прави нищо и просто се връща на същата страница.


person chip    schedule 01.04.2013    source източник


Отговори (2)


С ofbiz контролерите можете да изпратите обратен отговор по два начина:

  1. Предпочитан по-често срещан начин: във вашето java събитие вие ​​извиквате някои услуги или извършвате някаква обработка, след което получавате резултата от обработката като атрибут на заявка и след това изобразявате тези атрибути в изгледа. Както можете да видите, вашият контролер сочи към изглед.
  2. Това е по-рядко срещан случай, когато трябва да изпратите на потребителя някои данни, които не могат да бъдат изобразени в изгледа, в този случай ръчно записвате данните в обекта за отговор и затваряте потока за отговор. Предполагам, че правите точно това. В такъв случай не трябва да връщате изглед във вашия контролер, защото вече сте написали данните и се надяваме да сте затворили потока на отговорите. Така че просто променете контролера си на този:
<response name="success" type="none" />
person Bilgin Ibryam    schedule 03.04.2013
comment
благодаря за предложенията. Опитах #2, имам метод, който създава работна книга и я записва в отговор. Но когато извикам метода, не получавам файл и ми се показва празен екран. В адресната лента виждам извиквания метод и някои предадени параметри, но файлът не е изтеглен. Заглавките и ContentType бяха правилно включени - person chip; 03.04.2013
comment
здравей Bilgin, мислиш ли, че мога да използвам jspViewFileHandler, за да направя това по стария j2ee начин? - person chip; 03.04.2013

Не можах да създам файла за компилация на приложението КОНКРЕТНО, защото просто използвах build.xml за целия бизнес и това не изглежда да актуализира модификациите на приложението, което използвам.

След като направих това, промените, които направих в Java класа, проработиха

person chip    schedule 08.04.2013