这项琐碎的任务对我来说真的很耗时。我正在为web项目做真正的基本用户界面(专注于业务逻辑)。如果已经有我的问题的确切答案,请重定向我,我将立即删除它。我只是不知道要搜索什么,基本短语太模糊了。
情景:
我需要使用/ someurlrequest?edit =(idOfelement)或/ someurlrequest?populate =(idOfElement)获取请求,但我得到/ someurlrequest?edit =(idOfelement)& populate =(idOfElement)(GET只是为了显示发送的内容,首选POST)
每当出现元素集时,我想要有两个按钮,但每当我按照表单提交动作下面显示的方式进行操作时,抓取请求的两个值(编辑和填充)意味着我可以进一步使用&#39 ; t处理请求,因为我不知道哪个按钮被按下了,因为两个名称/值对都被传递,我得说Edit = 1和Populate = 1,我显然只想要一对Edit = 1或Populate = 1。
<c:forEach var="TrainingProgram" items="${programbank}">
<form method="get" action="/someurlrequest">
<p> ${TrainingProgram.name}</p
<p> ${TrainingProgram.shortDescription}</p>
<p>
<input value="Edit" type="submit" />
<input name="edit" style="display: none;" value="${TrainingProgram.programId}" />
<input value="Populate" type="submit" />
<input name="populate" style="display: none;" value="${TrainingProgram.programId}" />
</p>
</form>
</c:forEach>
我能用基本的东西逃脱:
<a href="/somerequest/edit=${TrainingProgram.programId}"> Edit <a/>
<a href="/somerequest/populate={TrainingProgram.programId}"> Populate <a/>
但这会限制我GET,正如我之前提到的,我想要POST。
是否有可能用纯HTML解决它(缺少一些非常简单的东西?)? JS解决方案也很受欢迎,虽然我只在复制粘贴黑盒级别上理解JS而且我不希望别人为我做工作然后有效地责怪我,除非这是JS真正的基本任务: - )
谢谢,
答案 0 :(得分:2)
嗯,你应该能够通过两种不同的形式来实现它:
<p> ${TrainingProgram.name}</p>
<p> ${TrainingProgram.shortDescription}</p>
<form method="POST" action="/someurlrequest">
<input value="Edit" type="submit" />
<input name="edit" type="hidden" value="${TrainingProgram.programId}" />
</form>
<form method="POST" action="/someurlrequest">
<input value="Populate" type="submit" />
<input name="populate" type="hidden" value="${TrainingProgram.programId}" />
</form>
更多解释:
基本上,当您提交表单时,表单中包含的所有输入表单都会发送到操作URL。因此,即使您在同一表单中有两个提交按钮,它们也会发送相同的值。根据经验,您应该只有一个表单提交按钮(除非您在Javascript中有更复杂的逻辑)。