【问题标题】:Multiple buttons in JSPJSP 中的多个按钮
【发布时间】:2013-01-31 08:57:45
【问题描述】:

我的网络项目中需要几个具有不同功能的按钮,但我不知道实现它的正确方法。 我这样做只是为了测试:

<input name="command" type="hidden" value="redirect"></input>
<input type="submit" name="page" value="Make order"></input>
<input type="submit" name="page" value="See bills"></input>
<input type="submit" name="page" value="See orders"></input>

然后在命令中我切换抛出页面名称的枚举以找出单击了哪个按钮。一个按钮应该只是将客户端重定向到另一个页面,其他按钮应该调用他们自己的命令。

我知道对表单submit 进行后处理是一种不好的做法,所以我正在寻找另一种方法。有人建议我使用 JS onclick,但我没有这方面的经验,也找不到适合我项目的简单示例。

已编辑

我有 ViewBillAction 和 ViewOrderAction 的 Action 类。我也有这样的类来定义所需的操作:

public class Redirect implements Action {

@Override
public String execute(TransferredData requestInformation) {
    String pageName = requestInformation.getRequestParameter("page");
    Action action;
    switch (pageName.toUpperCase()) {
    case "MAKE ORDER":
        return JSPManager.INSTANCE.getProperty(JSPManager.ORDER_PAGE_PATH);
    case "VIEW BILLS":
        action = new ViewBillsCommand();
        return action.execute(requestInformation);
    case "VIEW ORDERS":
        action = new ViewRequestsCommand();
        return action.execute(requestInformation);

主要问题是我根本不知道如何处理 JS 中的按钮单击事件。但这是我应该这样做的方式,我将非常感谢一个简单的例子。

【问题讨论】:

    标签: java javascript jsp button onclick


    【解决方案1】:

    type submit 表示您要将表单数据发布到服务器进行处理。 如果您不进行发布请求,则应使用 button 而不是 submit

    <input name="command" type="hidden" value="redirect"></input>
    <input type="button" name="page" value="Make order"></input>
    <input id="seeBillsButton" type="button" name="page" value="See bills"></input>
    <input type="button" name="page" value="See orders"></input>
    

    并使用javascript/jquery处理按钮点击事件。

    $("#seeBillsButton").click(function() {
      alert("Handler for .click() called.");
    });
    

    已编辑 在服务器端,您应该有 3 个操作来处​​理这些请求。

    1. MakeOrderAction
    2. 查看账单操作
    3. 查看订单操作。

    对于 MakeOrderAction,您只想将用户重定向到下订单页面,通过 javascript(或超链接)中的点击事件来处理。

    对于 ViewBillAction 和 ViewOrderAction,每个动作都与一个 jsp 相关联并在那里显示结果。你有 2 种方法来归档它。您可以为他们制作 2 个表格并分别提交给相应的操作。或者您可以使用相同的表单,并通过点击事件检查用户点击了什么,在javascript中处理和提交表单。结果 jsp 页面应在您的操作类中定义。

    http://api.jquery.com/click/

    【讨论】:

    • 问题是我确实发布了请求。当按下“查看订单”或“查看账单”按钮时,在“重定向”命令中我调用“查看账单/订单命令”,接收相应的账单/订单集合,然后在 servlet doPost 方法中转到另一个页面。也许你可以告诉我,我怎样才能使用onclick为每个按钮调用相关命令?
    • 我很困惑你想做什么。如果看到订单、查看账单、下订单是三种不同的发布请求。为什么不把它分成三种形式。请详细说明您要争取什么。单击任何按钮时的预期结果是什么。
    • 恐怕我不太擅长解释问题。我正在做一个简单的酒店预订网络应用程序。在主页上,客户可以选择他想做的事情:下一个新订单 - 然后他被重定向到他可以填写订单的页面;或者他可以查看他的订单和账单——在这种情况下,应该调用一个命令来收集账单/订单并将其传输到另一个 JSP 以显示客户。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多