繁体   English   中英

将隐藏的输入值从jsp传递到servlet

[英]Passing hidden input value from jsp to servlet

单击链接而不重定向到任何地方时,我试图生成一个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,而不是在单击锚标记时将其传递给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();

您可以通过以下方式在Java脚本中的URL中传递参数:

var refBgcId=84;
var url = "/UploadExcel.do?refBgcId="+refBgcId;
window.location.href =url;

在servlet中,您可以访问

   String refBgcId= request.getParameter("refBgcId").toString();

字符串referenceid = request.getParameter(“ refBgcId”)。toString(); //这里refBgcId是一个名称...不要与jsp的名称和ID传递名称混淆

然后在servlet中尝试

字符串referenceid = request.getParameter(“ refBgcId”)。toString();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM