1

在我的 JSP 中,我执行以下操作:

<!-- Bank manager's permissions -->

<!--more stuff goes here -->
<fieldset>
  <legend>To open a new account</legend> 
  <form action="blablabla">    
      <input type="hidden" name="hdField" value="myValue" />  // note I pass a "myValue" as string 
      <a href="employeeTransaction1">Press here to continue</a>  
  </form>
</fieldset>

在我的 Servlet 中,我抓取了隐藏的输入:

@WebServlet("/employeeTransaction1")
public class Employee1 extends HttpServlet {
    private static final long serialVersionUID = 1L;


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    {
        String getHiddenValue=request.getParameter("hdField");
        System.out.println("Hidden field Value :"+getHiddenValue);
        // forwards to the page employeeOpenNewAccount.jsp
        request.getRequestDispatcher("/WEB-INF/results/employeeOpenNewAccount.jsp").forward(request, response);
    }



}

System.out.println产生:null在控制台

为什么我得到null的不是我通过的实际值?

问候

编辑:

更改为后:

<fieldset>
  <legend>To open a new account</legend> 
  <form action="/employeeTransaction1" method="GET">
      <input type="hidden" name="hdField" value="myValue"/>
      <a href="employeeTransaction1">Press here to continue</a>  
  </form>
</fieldset>

Anull仍然出现在控制台上。

4

2 回答 2

4

您要做的是将表单发送到服务器。但是,事实上,你不会那样做。您只需发出 GET 请求(当用户单击您的链接时<a href="employeeTransaction1">Press here to continue</a>:)

如果要发送表单,请确保正确设置表单标签的属性并向表单添加提交按钮

 <form action="/employeeTransaction1" method="GET">
 ...
 <input type="submit" value="Submit" />
 ...
 </form>

根据您发送表单的首选方式,您可以将method="GET"参数更改为method="POST"并确保在 servlet 中您在doPost()方法中处理表单

或者,如果您的目的不是将 from 发送到服务器,而只是传递隐藏输入的值,则应将其值添加为 GET 请求中编码的参数。就像是:

  /employeeTransaction1?hdField=myValue

为此,您需要一些客户端处理,即当用户单击链接时,应将隐藏输入添加到 get 中,然后发出请求。

于 2012-08-11T09:58:07.040 回答
2

使用href标记不会提交您的表单,即它不会将表单中定义的参数传递给请求。您应该改用input type="submit"按钮标签。还要确保表单操作与您的 @WebServlet 定义匹配。

<fieldset>
  <legend>To open a new account</legend> 
  <form action="/employeeTransaction1">    
      <input type="hidden" name="hdField" value="myValue" />  // note I pass a "myValue" as string 
      <input type="submit" value="Submit" />
  </form>
</fieldset>
于 2012-08-11T10:28:13.137 回答