我的JSP中有一个html表,其中一列是锚元素。单击此锚标记我需要调用一个Servlet。在此请求中,我将文件名作为请求参数和servlet一起追加到呼叫。 喜欢
<table>
<tr><td>
<a href="/FileDownLoadServlet.dwnld?fileName=Test1.pdf&key=123456" target="_blank">Test1Container</a>
<td></tr>
<tr><td>
<a href="/FileDownLoadServlet.dwnld?fileName=Test2.pdf&key=789123" target="_blank">Test2Container</a>
<td></tr>
</table>
servlet将文件写入响应,以便在新选项卡中打开相应的pdf。
问题是在其地址栏中打开的新选项卡显示整个URL。可能是因为GET请求,如果href。 我想避免这种情况,并显示没有servlet名称及其请求参数的原始URL。如果可能,在上下文名称之后只显示地址栏中的文件名。 请建议。
答案 0 :(得分:1)
JS小提琴: http://jsfiddle.net/9qacod03/
<form id = "pdfViewer" method = "post" action = "/FileDownLoadServlet.dwnld" target="_blank">
<input type = "hidden" name = "fileName" value = "" />
<input type = "hidden" name = "key" value = "" />
</form>
<table>
<tr>
<td>
<a class = "pdfLink" fileName = "Test1.pdf" key = "123456" href = "#">Test1Container</a>
</td>
</tr>
<tr>
<td>
<a class = "pdfLink" fileName = "Test2.pdf" key = "789123" href = "#">Test2Container</a>
<td>
</tr>
</table>
$(".pdfLink").click(function () {
var fileName = $(this).attr("fileName");
var key = $(this).attr("key");
$("#pdfViewer").find("[name=fileName]").val(fileName);
$("#pdfViewer").find("[name=key]").val(key);
$("#pdfViewer").submit();
});