【问题标题】:Why my form parameters not getting in JSP为什么我的表单参数没有进入 JSP
【发布时间】:2013-06-09 09:31:33
【问题描述】:

这是我的 HTML 表单:

 <form action="supplierportal_home.jsp">


   <select id="contract" name="contract"> 
     <option    selected="selected">Please Select</option>
     <option    value="open" >Open</option>
     <option    value="limited" >Limited</option>  
   </select>

   <input type="text" name="cpv_code" placeholder="<%= cpvOrTenderNo %>">

   <button type="submit">FIND  <%= contractOrTender %></button>

  </form>

我正在进入 JSP

String  contract=request.getParameter("contract");
    System.out.println("%%%"+contract);

    String  cpv_code=request.getParameter("cpv_code");
    System.out.println("%%%"+cpv_code);

这就是问题所在。看起来很讨厌。

当我输入这两个值时,只有parameters 进入jsp 如果我只从选项中选择合约,那么null 即将到来,如果我提供 cpv-co​​de 那么参数即将到来......任何人都可以请帮忙解决这个问题...

为什么我的选择选项值取决于其他表单元素cpv-code 值,请说明原因。

谢谢。

【问题讨论】:

  • 尝试通过将所有代码放在注释中并逐行删除来进行调试
  • 请格式化HTML代码。
  • @TheNewIdiot 完成!你能告诉我现在是什么问题吗?
  • 嗯,很奇怪,我没有遇到任何此类问题。我在 Tomcat 7 中运行它。
  • @TheNewIdiot 甚至不在容器上。我在 Eclipse 中面对它自己。为什么这样?如果我在文本框中输入,那么只有第一个值进入 jsp 如果我只更改下拉值并提交该值将变为 null 的表单... :(

标签: java javascript html jsp servlets


【解决方案1】:
<button type="submit">FIND  <%= contractOrTender %></button>

在这个例子中,只要你在文本框中输入文本,那么只有 contractOrTender 该值可以从文本框中获取。

但是当您没有在文本框中输入任何值并尝试从下拉列表中访问值时,它只会出现“null”。作为boz此时这个值为null。

其中一个jsp页面的错误。这就是为什么即使您没有在文本框中输入任何值,您也不会获得下拉值。

解决方案

尝试为文本框设置一些默认值。或

更改您的 HTML 代码。

【讨论】:

  • 不。我删除了所有那些 jsp 脚本并尝试了..什么也没发生。Eroju 我被预订了。
  • 所以现在你的代码看起来像这样??
  • 是的,完全正确..仍然面临同样的问题。正如克里斯所说,似乎是一些环境问题。
  • 我的代码运行良好。我认为可能存在tomcat服务器问题。
  • 是的..我没有留下任何线索。这真的很奇怪.. :(。感谢您的支持。
【解决方案2】:

我刚刚测试了代码,它似乎工作正常。没有任何价值取决于其他。如果您不希望通过 URL 发送数据,唯一的建议是添加 method="POST"

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Index Page</title>
</head>
<body>
 <form action="upload.jsp" method="POST">


   <select id="contract" name="contract"> 
     <option    selected="selected">Please Select</option>
     <option    value="open" >Open</option>
     <option    value="limited" >Limited</option>  
   </select>

   <input type="text" name="cpv_code" />
   <button type="submit">FIND</button>

</form>

</body>
</html>

上传.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Upload JSP</title>
</head>
<body>

<%
String  contract=request.getParameter("contract");
System.out.println("%%%"+contract);

String  cpv_code=request.getParameter("cpv_code");
System.out.println("%%%"+cpv_code);
%>

</body>
</html>

【讨论】:

  • 试试我刚刚粘贴的代码,让我知道它是否有效。如果不是,则可能是环境问题
  • haahh..No.可能是环境问题。仍然存在同样的问题。
  • 我只能说这段代码运行良好(如预期的那样)。您可以在新下载的独立 tomcat 中部署您的战争并从您的 eclipse 中尝试吗?此外,如果您需要更多帮助,您需要提供更多信息。可能是 github 上的一个简单项目,问题可重现
猜你喜欢
  • 2011-11-27
  • 2022-10-17
  • 2022-12-18
  • 1970-01-01
  • 2014-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多