为什么我的表单参数没有进入JSP

时间:2013-06-09 09:31:34

标签: java javascript html jsp servlets

这是我的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如果我只从选项中选择合同,那么如果我给cpv代码null即将到来,那么参数即将到来......任何人都可以帮忙解决这个问题......

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

感谢。

2 个答案:

答案 0 :(得分:1)

我刚刚测试了代码,似乎工作正常。没有价值取决于另一个。如果您不希望通过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>

<强> upload.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>

答案 1 :(得分:1)

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

在此示例中,只要您在文本框中输入文本,只需 contractOrTender 这个值可以从文本框中获得。

但是,由于您没有在文本框中输入任何值并尝试从下拉列表中访问值,因此它将会出现“无效”状态。只要。因此,此时&lt;%= contractOrTender%&gt; 此值为空。

在jsp页面中出错。这就是为什么你没有得到下拉值,即使你没有在文本框中输入任何值。

解决方案

尝试将一些默认值设置为textbox。或

更改您的HTML代码。