将 jsp 中的隐藏输入值传递给 servlet
Passing hidden input value from jsp to servlet
我试图在单击 link 时生成一个 excel 文件,但没有被重定向到任何地方。我将它放入 servlet 中,但是当我尝试获取隐藏输入的值时,出现空指针异常。我使用的代码是
JSP
<html:form action="/UploadExcel.do" enctype="multipart/form-data" method="post">
<a href="#" onclick="ExcelFiller.fill">Download Excel</a>
<input type="hidden" name="refBgcId" id="refBgcId" value="84"></input>
</html:form>
Servlet
public class ExcelFiller extends HttpServlet {
private static final long serialVersionUID = 1L;
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void destroy() {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Made it to the servlet");
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("In doPost");
HttpSession session=(HttpSession) request.getSession(false);
String loggedInUserId = (String)session.getAttribute("strUserId");
try{
String referenceid = request.getParameter("refBgcId").toString();/*NULL POINTER EXCEPTION*/
ArrayList<String> details = new ArrayList<String>();
details = UploadBGCDAO.getDetails(referenceid);
createExcel(request,response,details, loggedInUserId);
} catch (Exception e) {
e.printStackTrace();
}
}
}
我已尝试在本网站上类似问题的答案中找到解决方案,但我仍然无法解决这个问题。有人可以告诉我我做错了什么吗?
输入参数只会在您提交表单时传递给 servlet,而不是在您的锚标记被点击时传递。
如果要传递参数,请将参数追加到查询字符串中。
<form action="ExcelFiller.fill">
<input type="hidden" name="refBgcId" id="refBgcId" value="84"></input>
<input type="submit" value="Download Excel"></input>
</form>
并在 servlet 中进行以下更改。
属性的名称是 refBgcId
。
更改声明
String referenceid = request.getParameter("ref_id").toString();
到
String referenceid = request.getParameter("refBgcId").toString();
您可以在 URL 中将参数传递到 Java 脚本中:
var refBgcId=84;
var url = "/UploadExcel.do?refBgcId="+refBgcId;
window.location.href =url;
并且在 servlet 中您可以访问 as
String refBgcId= request.getParameter("refBgcId").toString();
字符串引用id = request.getParameter("refBgcId").toString(); // 这里 refBgcId 是一个名字...不要与 name 和 Id pass name from jsp
混淆
然后在 servlet 中试试这个
字符串引用id = request.getParameter("refBgcId").toString();
我试图在单击 link 时生成一个 excel 文件,但没有被重定向到任何地方。我将它放入 servlet 中,但是当我尝试获取隐藏输入的值时,出现空指针异常。我使用的代码是
JSP
<html:form action="/UploadExcel.do" enctype="multipart/form-data" method="post">
<a href="#" onclick="ExcelFiller.fill">Download Excel</a>
<input type="hidden" name="refBgcId" id="refBgcId" value="84"></input>
</html:form>
Servlet
public class ExcelFiller extends HttpServlet {
private static final long serialVersionUID = 1L;
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void destroy() {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Made it to the servlet");
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("In doPost");
HttpSession session=(HttpSession) request.getSession(false);
String loggedInUserId = (String)session.getAttribute("strUserId");
try{
String referenceid = request.getParameter("refBgcId").toString();/*NULL POINTER EXCEPTION*/
ArrayList<String> details = new ArrayList<String>();
details = UploadBGCDAO.getDetails(referenceid);
createExcel(request,response,details, loggedInUserId);
} catch (Exception e) {
e.printStackTrace();
}
}
}
我已尝试在本网站上类似问题的答案中找到解决方案,但我仍然无法解决这个问题。有人可以告诉我我做错了什么吗?
输入参数只会在您提交表单时传递给 servlet,而不是在您的锚标记被点击时传递。
如果要传递参数,请将参数追加到查询字符串中。
<form action="ExcelFiller.fill">
<input type="hidden" name="refBgcId" id="refBgcId" value="84"></input>
<input type="submit" value="Download Excel"></input>
</form>
并在 servlet 中进行以下更改。
属性的名称是 refBgcId
。
更改声明
String referenceid = request.getParameter("ref_id").toString();
到
String referenceid = request.getParameter("refBgcId").toString();
您可以在 URL 中将参数传递到 Java 脚本中:
var refBgcId=84;
var url = "/UploadExcel.do?refBgcId="+refBgcId;
window.location.href =url;
并且在 servlet 中您可以访问 as
String refBgcId= request.getParameter("refBgcId").toString();
字符串引用id = request.getParameter("refBgcId").toString(); // 这里 refBgcId 是一个名字...不要与 name 和 Id pass name from jsp
混淆然后在 servlet 中试试这个
字符串引用id = request.getParameter("refBgcId").toString();