getParameter从Method get返回null

时间:2017-05-20 23:22:36

标签: java jsp servlets get

我试图从url获取id但getParameter返回null 这就是我在url(tool.jsp)中发送id的方式:

<a href="http://localhost:8080/Projectpfeweb/executetool.jsp?id=${l.tool_id}" class="btn btn-info" role="button">Execute</a>

这是我想要id值

的doGet方法
 protected void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException
{
      ToolDAO dao=new ToolDAO();

    String id= req.getParameter("id");

    Tool t=dao.getToolById(Integer.parseInt(id));
      String first = req.getParameter("first");
     byte[] bytes = first.getBytes(StandardCharsets.ISO_8859_1);
     first= new String(bytes, StandardCharsets.UTF_8);
   if(first!=null)
   {
    String [] input=first.split(" ");
      System.out.println("input"+input[0]);
      EXEJAVA exe=new EXEJAVA();
      FileRead f=new FileRead();

      f.writeinputfile(input);
       ArrayList l=exe.executetool(t.getTool_path_exe());

       req.setAttribute("l",l);
       req.setAttribute("first", first);
       req.getRequestDispatcher("executetool.jsp").forward(req, res);
}

这是表单(executetool.jsp)

 <form accept-charset="UTF-8" name="form" action="executetool" method="get">

<div class="centre">
<div class="row">
<div class="inline-div">
  <label for="ta1">Text in Latin script</label>
<textarea cols="60" rows="15" id="first" name="first" class="inline-
txtarea">${first}</textarea>
</div>
&nbsp;
<div class="inline-div">
<input type="button" value="Clear" onclick="javascript:eraseText();"> 
  </div>
  &nbsp;
  <div class="inline-div">
    <label for="ta2" >Text in Arabic script</label>
    <textarea cols="60" rows="15" id="second" name="second" class="inline-
    txtarea"><c:forEach items="${l}" var="s">${s}&nbsp;</c:forEach>
    </textarea>
     </div>
     </div>
   </div>

     </form>

因为每次刷新页面时,url都会不断更改,因此&#34; id = something&#34;部分被我所拥有的两个文本区域的值替换,我应该做什么来始终将该部分保留在URL中?

1 个答案:

答案 0 :(得分:1)

放置隐藏字段

<input type='hidden' name='id' value='${l.tool_id}'>

然后对按钮使用输入类型提交,而不是通用的<a>标记,因为除非您在某个地方为您提交表单的javascript代码,否则不会提交表单。

您还可以将ID放在表单的action属性中。

<form accept-charset="UTF-8" name="form" action="executetool?id=${l.tool_id}" method="get">