im относительно новое для HTML/Javascript/Java, и до сих пор я нашел решение для всех своих «новичков» проблем ... Но это уже заняло у меня несколько часов «попытка и ошибка»: В моем приложении клиент заполняет форму, которая затем передается через кнопку отправки на серверный компонент.Commandbutton не выделяет свойство actionListener
Проблема заключается в том, что p: commandButton (отмеченный в коде ниже) не выполняет выражение метода из actionListener. Выполнение javascript-кода в свойствах oncomplete или onsuccess работает, но поскольку я хочу вызвать метод поддерживаемых bean-компонентов после отправки формы, я думаю, что свойство actionListener будет правильным выбором .. если это сработает. Возможно, важно отметить, что форма находится в диалоговом окне «Перформанс».
Просто дайте мне знать, если вам нужно, может быть, больше информации как javascript- или Java код ..
Кто-то знает, в чем проблема? Спасибо заранее.
Heres некоторый код, чтобы проиллюстрировать мою проблему ..
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
<f:facet name="first">
<meta content='text/html; charset=UTF-8' http-equiv="Content-Type"/>
<title>Title</title>
</f:facet>
<style>
</style>
</h:head>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
<script>
</script>
<h:body id="body">
<p:growl id="growl" showDetail="true" />
<p:layout fullPage="true">
<p:layoutUnit position="north" size="100" resizable="true" closable="true" collapsible="true">
Ihre Aufgabe besteht darin, 5 Ladesäulen zu setzten wo es ihnen gefällt auf der Karte.
</p:layoutUnit>
<p:layoutUnit position="south" size="175">
<h:outputLabel id="outp" value="#{mainController.testparam}" />
</p:layoutUnit>
<p:layoutUnit position="west" size="175" collapsible="true">
</p:layoutUnit>
<p:layoutUnit position="center" id='idcenter'>
<div id="map-canvas"></div>
<p:dialog id="dlg" modal="true" closeOnEscape="false" fitViewport="true" widgetVar="dlg" closable="false" resizable="false" width="50%" minWidth="500" appendTo="body">
<!--><h:form prependId="false" onsubmit="return cancel()"><-->
<h:form prependId="false" id="form1">
<h:panelGrid columns="3" cellpadding="10">
<h:outputLabel for="xfield" value="Koordinaten" />
<h:inputText disabled="true" id="xfield" value="#{mainController.currentXCoordinate}"/>
<h:inputText disabled="true" id="yfield" value="#{mainController.currentYCoordinate}"/>
<h:outputLabel for="location" value="Abfrage: PositionDescription" />
<p:inputTextarea id="descriptionPosition" autoResize="true" class="textinput" required="false" counter="display1" maxlength="1000" value="#{mainController.currentPositionDescription}" counterTemplate="{0} Zeichen übrig"/>
<h:outputText id="display1" class="display"/>
<h:outputText value="#{mainController.currentPositionDescription}" rendered="false"/>
<h:outputLabel for="reason" value="Abfrage: Reason" />
<p:inputTextarea id="reason" autoResize="true" class="textinput" required="false" counter="display2" maxlength="250" value="#{mainController.currentReason}" counterTemplate="{0} Zeichen übrig"/>
<h:outputText id="display2" class="display"/>
<h:outputText value="#{mainController.currentReason}" rendered="false"/>
<h:outputLabel for="ratingImportance" value="Abfrage: Rating Importance" />
<p:selectOneMenu id="ratingImportance" value="#{mainController.currentRatingImportance}" required="false">
<f:selectItem itemLabel="Rating Importance" itemValue="0" />
<f:selectItem itemLabel="Sehr wichtig" itemValue="4" />
<f:selectItem itemLabel="Wichtig" itemValue="3" />
<f:selectItem itemLabel="Eher unwichtig" itemValue="2" />
<f:selectItem itemLabel="Unwichtig" itemValue="1" />
</p:selectOneMenu>
<h:outputText value="#{mainController.currentRatingImportance}" rendered="true"/>
<h:outputLabel for="numberOfChargingPoints" value="Abfrage: NumberOfChargingPoints" />
<p:selectOneMenu id="numberOfChargingPoints" value="#{mainController.currentNumberOfChargingPoints}" required="false">
<f:selectItem itemLabel="1" itemValue="1" />
<f:selectItem itemLabel="2" itemValue="2" />
<f:selectItem itemLabel="3" itemValue="3" />
<f:selectItem itemLabel="4" itemValue="4" />
</p:selectOneMenu>
<h:outputText value="#{mainController.currentNumberOfChargingPoints}" rendered="true"/>
<h:outputLabel for="chargingStandard" value="Abfrage: Charging Standard" />
<p:selectOneMenu id="chargingStandard" value="#{mainController.currentChargingStandard}" required="false">
<f:selectItem itemLabel="ChaDeMo" itemValue="ChaDeMo" />
<f:selectItem itemLabel="CCS" itemValue="CCS" />
<f:selectItem itemLabel="Typ3" itemValue="Typ3" />
<f:selectItem itemLabel="Typ2" itemValue="Typ2" />
<f:selectItem itemLabel="HPC" itemValue="HPC" />
<f:selectItem itemLabel="keine Angabe" itemValue="ka" />
</p:selectOneMenu>
<h:outputText value="" rendered="true"/>
<h:outputLabel for="rating1" value="Abfrage: Rating 1" />
<p:inputTextarea id="rating1" class="textinput" required="false" counter="display3" maxlength="250" value="#{mainController.currentRating1}" counterTemplate="Noch {0} Zeichen"/>
<h:outputText id="display3" class="display"/>
<h:outputText value="#{mainController.currentRating1}" rendered="false"/>
<h:outputLabel for="rating2" value="Abfrage: Rating 2" />
<p:inputTextarea id="rating2" class="textinput" required="false" counter="display4" maxlength="250" value="#{mainController.currentRating2}" counterTemplate="Noch {0} Zeichen"/>
<h:outputText id="display4" class="display"/>
<h:outputText value="#{mainController.currentRating2}" rendered="false"/>
<h:outputLabel for="rating3" value="Abfrage: Rating 3" />
<p:inputTextarea id="rating3" class="textinput" required="false" counter="display5" maxlength="250" value="#{mainController.currentRating3}" counterTemplate="Noch {0} Zeichen"/>
<h:outputText id="display5" class="display"/>
<h:outputText value="#{mainController.currentRating3}" rendered="false"/>
<!-->This commandbutton does not execute the methodExpression<-->
<p:commandButton value="Submit" update="form1" icon="ui-icon-check" rendered="true" id="button1" actionListener="#{mainController.saveData}"/>
<p:commandButton type="reset" value="Cancel" onclick="return cancel()"/>
</h:panelGrid>
<h:inputHidden value="#{mainController.currentId}" />
</h:form>
</p:dialog >
</p:layoutUnit>
</p:layout>
</h:body>
</html>
Я не вижу ничего плохого непосредственно, но я не могу ослов его полностью. Можете ли вы создать [mcve] (http://stackoverflow.com/help/mcve)? Таким образом, уменьшая xhtml до минимального минимума, а также разместим соответствующий компонент (но также и минус) – Kukeltje
. Какую версию JSF/PF вы используете? appendTo = "body" выглядит неправильно для меня, вероятно, должно быть appendTo = "@ (body)", но не знаю, решит ли он –
Привет Jaqen, это было моим обходным решением проблемы, что диалог открытия также был размыт фоном окно. Решение non-primefaces должно было установить appendToBody = «true», но этот атрибут устарел в диалоговом окне «Поверхности». Как работает также с вашим решением, которое кажется мне более чистым, я изменил его ... спасибо – joarhem