我正在开发一个项目,其中必须具有允许用户更新和删除将动态显示给他们的表的某些行的功能.
用户将单击单选按钮以选择要更新或删除的行,然后单击更新或提交按钮.
根据他对更新或删除的选择,我必须将所选行的内容传递给2个servlet.现在,用于更新的servlet与delete的servlet不同.我不能在表单的action属性中提到url模式,因为我需要根据用户选择将值传输到2个不同的servlet.
是否有可能实现这一目标?
请建议我解决这个问题的几个方法.
我正在尝试使用基于注释的Spring MVC创建简单的添加/删除表单."添加"功能顺利进行,但当我尝试添加另一个按钮时,我遇到了困难.
这是我的代码:
控制器动作:
@RequestMapping(value = "/books/documentType.do", method = RequestMethod.GET)
public String getDocType(
@RequestParam(required = false, value = "id") Long id,
ModelMap model) {
DocTypeDTO docType = new DocTypeDTO();
if (id != null)
docType = docTypeConverter.getDTO(id);
model.addAttribute("docType", docType);
return "/books/documentType";
}
@RequestMapping(value = "/books/documentType.do", method = RequestMethod.POST)
public String setDocType(
@ModelAttribute("docType") DocTypeDTO docType,
BindingResult result,
SessionStatus sessionStatus
) {
docTypeValidator.validate(docType, result);
if (result.hasErrors())
return "/books/documentType";
else {
docTypeConverter.saveDTO(docType);
sessionStatus.setComplete();
return "redirect:/books/documentTypes.do";
}
}
Run Code Online (Sandbox Code Playgroud)
非常标记的形式:
<form:form method="post" commandName="docType" id="editForm">
<table width="100%" …Run Code Online (Sandbox Code Playgroud) 我很好奇JSF是如何知道单击按钮的,有一些动作,甚至可以使用参数调用动作监听器.我可以想象服务器会注意到状态和EL并调用方法.
例1:
<form>
<p:commandButton actionListener="{bean.do_something(bean.info)}" />
</form>
Run Code Online (Sandbox Code Playgroud)
例2:
<form>
<h:datatable values=... var="myvar">
<h:column>
<p:commandButton actionListener="{bean.do_something(myvar.info)}" />
</h:column>
</h:datatable>
</form>
Run Code Online (Sandbox Code Playgroud)