为什么我的jsp request.getParameter()没有获取数据?

iCo*_*unk 2 html forms jsp

香港专业教育学院创建了一个表单,用户将在1.jsp中选中复选框,选择单选按钮和下拉菜单...

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

jsfiddle for 1.jsp:http://jsfiddle.net/VWczQ/

action="/2.jsp">
Run Code Online (Sandbox Code Playgroud)

现在在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>
<% } %>
Run Code Online (Sandbox Code Playgroud)

当我从表单中随机选择选项时,一切都是NULL ...

我究竟做错了什么?!?

Bal*_*usC 5

您似乎期望idHTML输入元素的属性已作为请求参数名称发送.这是错的.它name是作为请求参数名称发送的属性.它的值是value在命名输入元素上设置的属性.

所以,而不是你的错误检查

if(request.getParameter("extra") != null) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

对于以下单选按钮

<input type="radio" name="choice" value="extranet" id="extra"/>
Run Code Online (Sandbox Code Playgroud)

您需要按名称获取参数choice并测试其值是否为extranet.

if ("extranet".equals(request.getParameter("choice"))) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

至于all复选框,我很困惑.可以发送这两个值,但是你正在检查它们if-else.不all应该在同一个单选按钮组内吗?你不应该删除else?无论如何,重点应该是明确的.它是name作为请求参数名称而不是id属性发送的输入元素' attribtue .