1

我正在做网络应用程序。我在编辑数据时遇到问题

我想创造这样的东西

我的想法

我希望你能帮助我找到方法来做到这一点。我找到了下一个变体,但我不知道人们通常会这样做。

  1. 以一种形式多次提交。
  2. 在一个表格中提交超过 1 个。
  3. 或 1 个 JSP 中的一种以上形式

而且我不应该使用任何框架。并且没有javascript。

谢谢

好的,如果它有助于理解我想在 servlet 上得到什么,我会展示 selvlet 的某些部分

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        String page = new String();
        Command command = CommandFactory.getCommand(request);

        page = command.execute(request);
        if (page != null) {
            RequestDispatcher dispatcher =
                    getServletContext().getRequestDispatcher(page);
            dispatcher.forward(request, response);
        }
          ....
} 

和 CommandFactory

public static Command getCommand(HttpServletRequest request){
        Command current = new NoCommand();

        String action = request.getParameter("command");

        if(action == null || action.isEmpty()){
            return current;
        }

        try{
            CommandEnum currentState = CommandEnum.valueOf(action.toUpperCase());
            current = currentState.getCurrentCommand();           
        }
...
}

和 CommandEnum

public enum CommandEnum {

    EDIT_QUESTION {

        {
            this.command = new EditQuestionCommand();
        }
    };
} 

特别是命令我做一些业务逻辑

请帮助我找到从 jsp 值作为 command="delete" 获取的方法。通过单次提交,我使用隐藏字段。我们如何为几个按钮做同样的事情?

4

2 回答 2

1

您可以在一个表单中使用任意数量的提交按钮。但要对它们进行唯一命名,以便您可以轻松识别单击了哪个按钮。服务器将不会收到未单击的按钮的名称、值对。您可以轻松找到单击的哪个按钮可用作请求参数。使用它,您可以实现您的要求。

示例 HTML

<form>
 <input type="submit" name="s1" value="S1"/><br/>
 <input type="submit" name="s2" value="S2"/>
</form>

单击这些按钮中的任何一个时,您将看到查询字符串为?s1=S1?s2=S2

更新 1
您可以为所有提交按钮使用相同的名称并唯一标识,它们必须具有不同的值。

<input type="submit" name="modeOfAction" value="Delete"/><br/>
<input type="submit" name="modeOfAction" value="Update"/>

更新 2
如果您真的不在乎每个按钮的,那么最好为每个提交按钮使用唯一名称。

<input type="submit" name="delete" value="Удалить (Err! I don't know what this text is!)"/><br/>
<input type="submit" name="update" value="Update"/>
于 2012-05-04T15:00:22.600 回答
0

曾经有一段时间,可选的 JavaScript 确实意味着:当没有 JavaScript 存在时优雅地接受。对于小型设备,人们可能会认为这个位置可能会再次得到加强,但是:

  • HTML 表单的使用受到限制,如上所示。
  • DOM 的使用,如 AJAX 调用更新部分页面,需要 JS。
  • 使用 jQuery 等库的 JavaScript 用户界面可能性(效果、表格排序、分页、主题、验证)。

我现在仍然有一种方法来获得command=edit:编写一个转换请求参数的servlet过滤器。例如,将参数command- NAME = TEXT转换为command= NAME

于 2012-05-05T15:34:46.073 回答