这很好用。我现在想-6ren">
gpt4 book ai didi

java - liferay中如何区分多个提交按钮

转载 作者:行者123 更新时间:2023-11-29 03:33:01 25 4
gpt4 key购买 nike

我有一个带有简单表单的 liferay portlet,用于输入两个数字并提交它们以进行相加:

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>

<portlet:defineObjects />

<portlet:actionURL var="calculateURL">
<portlet:param name="mvcPath" value="/html/calculator/edit.jsp" />
</portlet:actionURL>

<aui:form action="<%= calculateURL %>" method="post">
<aui:input label="x" name="x" type="text" value="${x}"/>
<aui:input label="y" name="y" type="text" value="${y}"/>
<aui:button type="submit" value="add"/>
</aui:form>

这很好用。我现在想添加一个按钮,让我可以减去数字。但是当我添加新按钮时,当我在我的 processAction 方法中时,我不知道如何区分按下了哪个按钮。我该怎么做?

或者:我找到了this回答如何去做,但我无法让它工作。它是否为我指明了正确的方向,我是否应该继续尝试那里给出的答案?

最佳答案

您可以在 Controller 类和 jsp 中根据单击的按钮使用两种不同的操作方法,相应地调用操作 url。找到下面的代码,它根据单击的按钮更改表单操作。这有助于您在 Controller 类中保持业务逻辑独立。否则你只能有 Action ,然后将参数传递给 Action 以确定要执行的操作(添加或减去)

<portlet:actionURL var="subtractNumberURL">
</portlet:actionURL>

<portlet:actionURL var="addNumberURL">
<portlet:param name="mvcPath" value="/html/calculator/edit.jsp" />
</portlet:actionURL>

<script type="text/javascript" charset="utf-8">
function submitForm(action){
if(action==0){
A.one('<portlet:namespace/>form').set('action',"<%=addNumberURL%>");
}else{
A.one('<portlet:namespace/>form').set('action',"<%=subtractNumberURL%>");
}
}
</script>

<aui:form action="<%= addNumberURL%>" name="form" method="post">
<aui:input label="x" name="x" type="text" value="${x}"/>
<aui:input label="y" name="y" type="text" value="${y}"/>
<aui:button type="submit" value="add" onClick="submitForm(0)"/>
<aui:button type="submit" value="subtract" onClick="submitForm(1)"/>
</aui:form>

关于java - liferay中如何区分多个提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17087824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com