我试图从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>
<div class="inline-div">
<input type="button" value="Clear" onclick="javascript:eraseText();">
</div>
<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} </c:forEach>
</textarea>
</div>
</div>
</div>
</form>
因为每次刷新页面时,url都会不断更改,因此&#34; id = something&#34;部分被我所拥有的两个文本区域的值替换,我应该做什么来始终将该部分保留在URL中?
答案 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">