有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java以一种形式提交。超过1人以一种形式提交。或者一个JSP中的多个表单

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

我想创建这样的smth

my idea

我希望你能帮我找到办法。我发现了下一个变种,但我不知道人们通常会这么做

  1. 以一种形式提交
  2. 超过1人以一种形式提交
  3. 或者一个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);
        }
          ....
} 

和命令工厂

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”的方法。对于单提交,我使用隐藏字段。我们如何才能对几个按钮执行相同的操作


共 (2) 个答案

  1. # 1 楼答案

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

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

    我现在仍然有一种方法可以获得command=edit:编写一个翻译请求参数的servlet过滤器。例如,将参数命令-名称=文本转换为命令=名称

  2. # 2 楼答案

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

    示例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"/>