香港专业教育学院创建了一个表单,用户将在1.jsp中选中复选框,选择单选按钮和下拉菜单…
我想使用1.jsp中的信息来确定2.jsp的输出…
jsfiddle for 1.jsp:http://jsfiddle.net/VWczQ/
action="/2.jsp">
现在在2.jsp我有这个:
<% if(request.getParameter("extra") != null) { %> <page:cmsElement id="cmsContent" name="/otcmarkets/traderAndBroker/market-data-vendors/wizard-results" /> <% } else if(request.getParameter("all") != null) { %> <page:cmsElement id="cmsContent" name="/otcmarkets/traderAndBroker/market-data-vendors/con-all" /> <% } else { %> <h1>holy crap everything is null!!!</h1> <% } %>
当我从表单中随机选择选项时,一切都是NULL …
我究竟做错了什么?!?
解决方法
您似乎期望HTML输入元素的id属性已作为请求参数名称发送.这是错的.它是作为请求参数名称发送的name属性.它的值是在命名输入元素上设置的值attribtue.
所以,而不是你的错误检查
if(request.getParameter("extra") != null) { // ... }
对于以下单选按钮
<input type="radio" name="choice" value="extranet" id="extra"/>
您需要通过名称选择获取参数并测试其值是否为Extranet.
if ("extranet".equals(request.getParameter("choice"))) { // ... }
至于所有复选框,我很困惑.可以发送这两个值,但是你在if-else中检查它们.不应该都在同一个单选按钮组内?你不应该删除别的吗?无论如何,重点应该是明确的.它是输入元素的名称属性,它作为请求参数名称而不是id属性发送.