无法解析为变量exportstr

30byixjq  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(326)

我在jsp的这一行有一个错误 <a href="<%=response.encodeURL(request.getContextPath()+"/ExportQP")%>?typeFichier=xls&exportStr=<%=exportStr%>"> Export Excel </a> 我尝试在jsp上导入一个类java exportqp: <%@ page import="com.export.servlet.ExportQP"%> 这是我的exportqp课程

public class ExportQP extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
    public ExportQP() {
        super();
    }

    /* (non-Java-doc)
     * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        System.out.println("Export Excel GET");
        //On récupère les patramètres
        String typeFichier = request.getParameter("typeFichier");
        String exportStr = request.getParameter("exportStr");

        //String exportTab1[] = exportStr.split("$$");
        //int nbLignes = exportTab1.length;

        //Preparation de la date pour le nom du fichier
        Date dateExport = new Date();
        Timestamp timeStampDate = new Timestamp(dateExport.getTime());
        DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy-HH-mm");
        String affDate = formatter.format(timeStampDate);

        response.setHeader("Cache-Control", "public");
        response.setHeader("Pragma", "public");
        //On donne le nom du fichier
        response.setHeader("Content-Disposition", "attachment; filename=\"Export"+affDate+"."+typeFichier+"\"");

        //On récupère le flux de sortie
        ServletOutputStream out = response.getOutputStream();

        //On indique le type d'export que l'on va faire
        if(typeFichier.equals("xls")){
            System.out.println("Type XLS");
            response.setContentType("application/vnd.ms-excel");
            // On crée l'Excel Workbook et le Sheet
            HSSFWorkbook wb = new HSSFWorkbook();
            HSSFSheet sheet = wb.createSheet("Annuaire CHIELVR");
            //HSSFHeader header = sheet.getHeader();
            //header.setCenter("Annuaire CHIELVR header");

            HSSFRow row = null;
            HSSFCell cell = null;
            String entreeStr = "";
            //String[] exportTab2 = null;
            //On récupère le nombre de lignes et on boucle dessus
            StringTokenizer st = new StringTokenizer(exportStr,"$$");
            //for(int i = 0; i < st.countTokens(); i++ )
            int nbLignes = st.countTokens();
            for(int i = 0; i < nbLignes; i++ )
             {
                //On creer la ligne
                row = sheet.createRow(i);
                //On récupère l'entrée
                entreeStr = st.nextToken();
                //On coupe la ligne pour obtenir les différents champs de l'entrée
                StringTokenizer st2 = new StringTokenizer(entreeStr,";");
                String token = "";
                for(int j = 0; j < st2.countTokens(); j++ ) {
                    cell = row.createCell(j);
                    token = st2.nextToken();
                    if(token != null){
                        cell.setCellValue(token);
                    }else{
                        cell.setCellValue(" ");
                    }
                }
            }
            //On écris le contenu du workbook sur le flux de sortie
           wb.write(out);
            out.close();
        }else if(typeFichier.equals("csv")){

            System.out.println("Type CSV");
           String print = "";
           response.setContentType("application/CSV");
           StringTokenizer st = new StringTokenizer(exportStr,"$$");
           int cptToken =  st.countTokens();
           String content = "" ;
           for(int i = 0; i < cptToken; i++ ) {
               print = st.nextToken();
               content += print;
               content += "\n";
           }
            out.print(content);
       }
    }      

   /* (non-Java-doc)
    * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("Export Excel POST");
   }

}

所以我的错误是jsp告诉我 exportStr 无法解析为变量”。

w9apscun

w9apscun1#

<%@ page import="com.export.servlet.ExportQP"%>

你把servlet导入jsp了吗?servlet不应该被导入。
servlet通常通过超文本传输协议http接收和响应来自web客户端的请求。
它们是由servletMap名称定义的 ExportQP 对你来说。
这个错误意味着您应该有一个名为 exportStr 在你的jsp里

<%
String exportStr="Hello World";
%>

相关问题