我知道当我知道每个按钮的name
值时,如何检测单击了哪个提交按钮。但是如果name
是动态的还是由另一个组件定义的呢?
例如,在这里,我只需检查此<form>
的POST数据是alpha
还是bravo
:
<form>
<input type="submit" name="alpha" value="Alpha">
<input type="submit" name="bravo" value="Bravo">
</form>
但那只是因为我知道我应该寻找这些名字。
处理此类情况是否有最佳做法? (也许通过渲染元素<input type="hidden" name="submit-button-names" value="dynamic_name1|dynamic_name2|etc">
。)我想要一个不需要JavaScript的解决方案。
答案 0 :(得分:0)
假设您可以控制显示这些按钮的JSP,只需在按钮名称前添加一个您可以在POSTed数据中查找的字符串。例如,将“dynamicbutton_”添加到所有名称中,例如
<form>
<input type="submit" name="dynamicbutton_alpha" value="Alpha">
<input type="submit" name="dynamicbutton_bravo" value="Bravo">
</form>
然后在您的Servlet中,通过调用ServletRequest.getAttributeNames()
查找具有此前缀的值答案 1 :(得分:0)
您可以编写自定义标记,根据您为标记提供的参数列表设置表单的不同输入。 你最终会看到像这样的HTML:
<form method="POST" action="SelectColour.do">
<p>Select your favorite colour: </p>
<formTags:select name='colour' size='1' optionsList='${applicationScope.colourList}'/>
<input type="SUBMIT" value="Click here to submit">
</form>
Here's是制作自定义标签的合适指南。