从 request.getParameter() 获取输入类型="image" 值

Getting a Input type="image" value from a request.getParameter()

在我的 html 中,我将 post 返回到我的 Servlet。我想获取输入类型 ="image" 的值,但我收到的是空值。

我的表格:

 <form action="HomeController" method="post">
   <button type="submit" name="s4" value="someValue">
     <img src="s4.jpg" alt="phonestuff">
   </button>
   <input type="hidden" name="s4price" value="800">  
 </form>

我的 Servlet post:

double s4price = Double.parseDouble(request.getParameter("s4price"));
String s4 = request.getParameter("s4");
System.out.println(s4price);
System.out.println(s4);

我的输出:

800.0
null

预期输出:

800.0
Note4

Input type="image" 提交表单时不传递值。您需要将它们传递给隐藏值。

您提交按钮不会发送任何图像值。因为type="image" 定义了一个图片作为提交按钮

试试这个:-

<form action="HomeController" method="post">
 <button type="submit" name="s4" value="Note4">
    <img src="s4.jpg" alt="phonestuff">
 </button>
 <input type="hidden" name="s4price" value="800">  
</form>

或者:为了发送 s4 值,您可以使用图像提交按钮将其作为隐藏字段发送。

<form action="HomeController" method="post">
  <input type="image" src="s4.jpg" alt="Submit" >
  <input type="hidden" name="s4" value="Note4"> 
  <input type="hidden" name="s4price" value="800">  
</form>

servlet post:-

double s4price = Double.parseDouble(request.getParameter("s4price"));
String s4 = request.getParameter("s4");
System.out.println(s4price);
System.out.println(s4);

输出:

800.0
Note4