java以一种形式提交。超过1人以一种形式提交。或者一个JSP中的多个表单
我在做网络应用。我在编辑数据时遇到了问题
我想创建这样的smth
我希望你能帮我找到办法。我发现了下一个变种,但我不知道人们通常会这么做
- 以一种形式提交李>
- 超过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);
}
....
}
和命令工厂
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”的方法。对于单提交,我使用隐藏字段。我们如何才能对几个按钮执行相同的操作
# 1 楼答案
曾经有一段时间,可选的JavaScript实际上意味着:在没有JavaScript的情况下优雅地接受。对于小型设备,人们可能会认为这一地位可能会再次得到加强,但:
我现在仍然有一种方法可以获得
command=edit
:编写一个翻译请求参数的servlet过滤器。例如,将参数命令-名称=文本转换为命令=名称# 2 楼答案
您可以在一个表单中使用任意数量的提交按钮。但是,请对它们进行唯一命名,以便您可以轻松识别单击了哪个按钮。服务器将不会收到未单击的名称、值对按钮。您可以很容易地找到所单击的按钮作为请求参数。使用它,您可以实现您的需求
示例HTML:
单击其中任何一个按钮,您将看到查询字符串为
?s1=S1
或?s2=S2
更新1:
所有提交按钮都可以有相同的名称,要唯一标识,它们必须有不同的值
更新2:
如果你真的不在乎每个按钮的值,那么最好为每个提交按钮使用唯一的名称