#java #python #jsf #primefaces #glassfish-4
#java #python #jsf #primefaces #glassfish-4
Вопрос:
Я развертываю свой маленький веб-сайт на glassfish, и у меня есть метод 2, который запускает файл python. Метод one просто запускает файл python, не более того. Когда я захожу на сайт, он автоматически вызывает все функции…
public void reservate() {
System.out.println("ALMAAA");
String start, end;
start = time1.substring(0,5);
end = time1.substring(6,11);
reserv = new Reservation("ASD", room, "19.00", "20.00");
reserv.getOutput();
}
<p:commandLink value="#{navigationTo.time1button}" onclick="#{navigationTo.reservate()}" style="font-size: 300%"/>
Reservu.getOutput() запускает файл и запускает файл python. Если я просто получаю доступ к этому сайту, даже если я не нажимаю на эту ссылку actionlink, это запускает everyting и делает резервирование…
Я хочу запускать этот файл python только при нажатии на ссылку commadn.
Есть предложения?
Комментарии:
1.
onclick
это не то место, которое нужно иметь#{navigationTo.reservate()}
. Какова цельnavigationTo.time1button
? Развеreservate
у вас там нет функции?2. navigationTo.time1button возвращает строку, отображаемую по этой ссылке, но я хочу запустить этот метод резервирования только при нажатии на него. Но теперь он всегда запускается, когда вы просто загружаете эту страницу. Это моя проблема.
3. Я оговорился, когда предложил вам переместить
{navigationTo.reservate}
вvalue
атрибут, но моя предыдущая рекомендация остается в силе:#{navigationTo.reservate()}
не должно быть вonclick
атрибуте; оно должно быть вaction
атрибуте4. Я только что получил информацию о том, как это работает, и проблема в том, что primefaces при создании клиентской части автоматически вызывает все методы для создания статического сайта. Вот почему он так называется. Единственный способ сделать это в pirmefaces, когда вы создаете его как Commandbutton / link и указываете это в ActionListener. Это единственное, что вызывается после того, как вы нажали, а не раньше.