我正在尝试编写一个简单的计算器portlet,并且将其中一个按钮的值传递给了我的portlet。还有我的.jsp的一部分:Portlet-表单中的多个按钮
<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处理所有这些按钮。只有一种形式也是很好的。必须有某种方式,但我不知道如何做到这一点,我是portlet和JSP中的新手。
编辑
我的问题的解释不是很清楚 - 我想传递的值点击按钮。我需要这些信息来了解用户想要计算的内容。当然我可以只用actionURL
s和form
s发送垃圾邮件,但我想用一种形式和actionURL来做到这一点。我敢打赌,它与onClick
属性有关,我很确定我不能使用JavaScript,因为它必须在服务器端完成,并且在客户端执行javascript。
第二个解决了这个问题,但看起来很奇怪。第3号 - 可能使用类似Nisha的建议,但不在客户端执行JavaScript?我必须以某种方式将它传递给我的portlet。或者用javascript做所有事情,但我想了解一些关于portlet的知识(传递参数等)。第一个看起来是最好的选择,但我想要像表4x3中的普通计算器那样具有数字按钮。不幸的是,你不能在表格中放置表格,但是你可以做相反的事情 - 你可以在表格中放置表格。这就是为什么我找不到我的问题的好办法。 – Jankiel
也许有办法在一行中有多个表单。我对HTML不太了解。 – Jankiel
我没有使用解决方案3,所以我不能提供一些代码。但其含义是a)javascript更新隐藏的输入字段,它包含在表单中b)控制器类上的portlet操作将能够通过id或name来查找此值。 – yannicuLar