Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 为什么我的jsp request.getParameter()无法获取数据?_Html_Forms_Jsp - Fatal编程技术网

Html 为什么我的jsp request.getParameter()无法获取数据?

Html 为什么我的jsp request.getParameter()无法获取数据?,html,forms,jsp,Html,Forms,Jsp,我创建了一个表单,用户可以在其中勾选复选框、选择单选按钮和1.jsp中的下拉列表 我想使用1.jsp中的信息来确定2.jsp的输出 jsfiddle for 1.jsp: 现在,在2.jsp中,我有以下内容: <% if(request.getParameter("extra") != null) { %> <page:cmsElement id="cmsContent" name="/otcmarkets/traderAndBroker/mark

我创建了一个表单,用户可以在其中勾选复选框、选择单选按钮和1.jsp中的下拉列表

我想使用1.jsp中的信息来确定2.jsp的输出

jsfiddle for 1.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>
<% } %>

天哪,一切都是空的!!!
当我从表单中随机选择选项时,所有内容都为空


我做错了什么

您似乎期望HTML输入元素的
id
属性作为请求参数名发送。这是错误的。它是作为请求参数名称发送的
name
属性。然后,它的值是在命名的输入元素上设置的
属性

因此,与您的错误支票相比

if(request.getParameter("extra") != null) {
    // ...
}
对于以下单选按钮

<input type="radio" name="choice" value="extranet" id="extra"/>

至于
all
复选框,我感到困惑。可以发送这两个值,但您正在检查
if else
中的值。
所有
不应该在同一个单选按钮组中吗?您是否应该删除
其他
?无论如何,这一点应该是明确的。作为请求参数名称发送的是输入元素的
name
attribtue,而不是
id
属性。

o我知道我应该检查“name”并获取“value”而不是“id”。。。“全部”是我将使用的复选框。。谢谢你,巴卢斯!!!是的,我理解这一点,但是JSP中的逻辑流可能会导致最终用户意外/不直观的响应。例如,如果最终用户同时选中“Extra”单选按钮和“All”复选框,那么最终用户只会得到“Extra”页面,而不会得到“All”页面。检查(request.getParameter(“name”)!=null)有效吗?我正在尝试,但它仍然给我零。。对于选择,将根据用户的选择禁用它们,如果用户单击“额外”,则将禁用3-5复选框等。仅当参数未发送或请求已重定向时,该复选框才会为空。使用诸如Firebug或Fiddler之类的HTTP流量跟踪工具来跟踪流量。使用
request.getParameterMap()
查看/调试所有参数。是否需要某种servlet来执行此操作?或者我可以只设置2个jsp页面,并将数据从一个页面发送到另一个页面?
<input type="radio" name="choice" value="extranet" id="extra"/>
if ("extranet".equals(request.getParameter("choice"))) {
    // ...
}