Я пытаюсь написать простой портлет калькулятора, и у меня проблема с передачей значения одной из кнопок в портлет. Там часть моего .jsp:Портлет - несколько кнопок в форме
<portlet:actionURL var = "digit" name = "onDigitPressed">
<portlet:param name="jspPage" value = "/html/calc/view.jsp"/>
</portlet:actionURL>
<aui:form action="<%= digit %>" method="post" >
<table>
<tr><td>
<aui:button name="button" type = "submit" value="7" id="7"/>
</td><td>
<aui:button name="button" type = "submit" value="8" id="8" /> </td><td>
<aui:button name="button" type = "submit" value="9" id="9"/> </td><td>
</tr><tr><td>
.
.//more buttons
.
</tr><tr><td>
<aui:button name="button" type = "submit" value="0" id="0" /> </td><td>
<aui:button name="button" type = "submit" value="." id="." /> </td><td>
</td>
</tr>
</table>
</aui:form>
и onDigitPressed
метода:
request.getParameter("button");//returns always null
Я хочу передать значение кнопки так или иначе, и я хочу иметь только один actionURL иметь дело со всеми этими кнопками. И было бы хорошо иметь только одну форму. Должен быть какой-то способ, но я понятия не имею, как это сделать, я новичок в портлетах и JSP.
EDIT
Мое объяснение проблемы не очень понятно - я хочу передать значение нажал кнопку. Мне нужна эта информация, чтобы знать, что пользователь хочет вычислить. Конечно, я могу просто спамить с actionURL
и form
, но я хочу сделать это с помощью одной формы и actionURL. Уверен, что это имеет какое-то отношение к атрибуту onClick
, и я уверен, что не могу использовать javascript, потому что это нужно делать на стороне сервера, а javascript выполняется на стороне клиента.
Второй разрешает проблему, но выглядит странно. № 3 - возможно, используя что-то вроде предложенного Ниша, но не выполняет javascript на стороне клиента? Мне нужно как-то передать его портлету.Или делайте все в javascript, но я хотел узнать что-то о портлетах (прохождение параметров и т. Д.). Первый выглядит как лучший вариант, но я хочу иметь цифровые кнопки, как в обычном калькуляторе, в таблице 4x3. К сожалению, вы не можете иметь форму внутри таблицы, но вы можете сделать наоборот - вы можете разместить таблицу содержимого в форме. Вот почему я не могу найти хорошее решение моей проблемы. – Jankiel
Возможно, есть способ иметь несколько форм в одной строке. Я мало что знаю о html. – Jankiel
Я не использовал решение 3, поэтому я не могу предоставить какой-то код. Но смысл: a) javascript обновляет скрытое поле ввода, которое содержится в форме b) Действие портлета в классе контроллера сможет найти это значение по id или имени. – yannicuLar