我在做网络应用程序。我编辑数据时遇到问题
我想像这样创建smth
我希望你能帮我找到办法。我发现了下一个变种,但我不知道人们通常会这样做。
我不应该使用任何框架。没有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值获取的方式as command =“delete”。单一提交我使用隐藏字段。我们如何为几个按钮做同样的事情?
答案 0 :(得分: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"/>
答案 1 :(得分:0)
有一段时间确实是可选的JavaScript意味着:在没有JavaScript的情况下优雅地接受。对于小型设备,人们可能会认为这个位置可能会再次得到加强,但是:
我现在仍然可以获得command=edit
:编写一个转换请求参数的 servlet 过滤器。例如,将参数 command- NAME = TEXT 转换为 command = NAME 。