乘提交的一种形式。 1个多提交一个表单。 以上则在1 JSP一种形式(Multiply sub

2019-10-16 16:01发布

我在做Web的应用程序。 我有一个问题,当我修改数据

我想创建水木清华这样的

我希望你能帮助我找到办法做到这一点。 我发现下一个变种,但我不知道,因为人们通常这样做。

  1. 乘提交的一种形式。
  2. 1个多提交一个表单。
  3. 以上则在1 JSP一种形式

我should't使用任何框架。 而如果没有的JavaScript。

谢谢

OK,如果它有助于了解我想对我的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值的方式越来越为命令=“删除”。 随着单提交我使用隐藏域。 我们如何能为几个按钮,这样做?

Answer 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"/>


Answer 2:

曾经有一段时间确实是可选的JavaScript意味着时间:当没有JavaScript是目前雍容大度地接受。 随着小型设备可能会觉得这个位置可能再次加强,但是:

  • HTML形式在它们的使用的限制,因为示出的位的上方。
  • DOM使用,如AJAX调用更新页面的一部分,需要JS。
  • JavaScript的用户接口的可能性(效果,表排序,分页,主题,验证)与像jQuery库。

我现在仍然有办法让一个command=edit :写一个servlet过滤器,转换请求参数。 例如翻译的参数命令- NAME = TEXT命令= NAME。



文章来源: Multiply submit in one form. More than 1 submit in one form. Or more then one form in 1 JSP