【问题标题】:how a option tag value selected can be retrieved in two or more jsp pages如何在两个或多个 jsp 页面中检索选择的选项标记值
【发布时间】:2015-10-06 05:19:24
【问题描述】:

purchase.jsp

 <form action="view.jsp" method="post">
    <select id='category'>
    <option value=""> Make a selection </option>
    <option value='company'>company</option>
    <option value='institution'>institution</option>
    <option value='hospital'>hospital</option>
    <option value='Others'>Others</option>
    </select>
    <input type = "submit" value="Submit"
    </form>

view.jsp

    <script type="text/javascript">

        function setAction(nPage){

            document.forms[0].action = nPage;
        }
    </script>
<form>
    <select onchange="setAction(this.value)">
    <option value=''> Make a selection </option>
    <option value='PDF2.jsp'> PDF</option>
    <option value='XLS2.jsp'> XLS </option>
    <option value='DOC.jsp'> DOC </option>
    <option value='XLSX2.jsp'> XLSX </option>
    </select>
<input type="submit" value="Submit">
</form>

首先我会从purchase.jsp中选择company,然后我会点击提交,它会转到view.jsp,然后我会再次选择PDF2.jsp,然后点击提交,它将转到PDF2.jsp页面。现在我的问题是如何将我在purchase.jsp中选择的公司打印到PDF2.jsp。所以这里有3个jsp页面,在第一个jsp页面中选择的值应该打印在第三个jsp页面中,但是顺序应该从第一个jsp(purchase.jsp)到第二个jsp(view.jsp)和第二个jsp(@987654331 @) 到第三个 jsp(PDF2.jsp)。

PDF2.jsp

<body>
<form>
<%
String cat=request.getParameter("category");
System.out.println("It is" +cat);
%>
</form>
</body>

【问题讨论】:

  • 一种选择是将其存储在隐藏值中。
  • 可以将其存储在会话变量中
  • @charlietfl 是的,它可以存储在会话变量中。现在我也意识到了

标签: javascript java jquery jsp servlets


【解决方案1】:

在 view.jsp 中,像这样设置会话

<%
session.setAttribute("category",category);
%>

您可以像这样在任何其他 jsp 中检索它

String company= (String)session.getAttribute("category");

【讨论】:

    【解决方案2】:

    purchase.jsp

    <form action="view.jsp" method="post">
    <select name="category">
    <option value=""> Make a selection </option>
    <option value="company">company</option>
    <option value="institution">institution</option>
    <option value="hospital">hospital</option>
    <option value="Others">Others</option>
    </select>
    
    <input type="submit" value="Submit"/>
    
    </form>
    

    view.jsp

    <script type="text/javascript">
    
        function setAction(nPage){
    
            document.forms[0].action = nPage;
        }
    </script>
    <form>
    <% 
    String category=request.getParameter("category");
    session.setAttribute("cat",category);
    %>
    <select onchange="setAction(this.value)">
    <option value=''> Make a selection </option>
    <option value='PDF2.jsp'> PDF</option>
    <option value='XLS2.jsp'> XLS </option>
    <option value='DOC.jsp'> DOC </option>
    <option value='XLSX2.jsp'> XLSX </option>
    </select>
    <br/>
    
    <input type="submit" value="Submit">
    </form>
    

    PDF2.jsp

    <body>
    <% 
    Connection conn = null;
    
    try 
    { 
        Class.forName("com.mysql.jdbc.Driver");
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/marketing_database","root","root");
        String jrxmlFile ="D:/dev/tools/jasper files/report10.jrxml";
        InputStream input = new FileInputStream(new File(jrxmlFile));
        JasperDesign jasperDesign = JRXmlLoader.load(input);
    
        System.out.println("Compiling Report Designs");
        JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
    
        System.out.println("Creating JasperPrint Object");
        Map parameters = new HashMap();
        parameters.put("category",session.getAttribute("cat"));
        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,parameters,conn);
        byte bytes[] = new byte[10000]; 
        JRPdfExporter exporter = new JRPdfExporter();
        ByteArrayOutputStream PDFStream = new ByteArrayOutputStream(); 
        exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
        exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, PDFStream); 
        exporter.exportReport(); 
        System.out.println("Size of byte array:"+PDFStream.size()); 
        bytes = PDFStream.toByteArray(); 
        response.setContentType("application/pdf"); 
        System.out.println("After JasperPrint = 1"); 
        response.setContentLength(bytes.length); 
        System.out.println("After JasperPrint = 2"); 
        PDFStream.close(); 
        System.out.println("After JasperPrint = 3"); 
    
        OutputStream outputStream = response.getOutputStream(); 
        System.out.println("After JasperPrint = 4"); 
        outputStream.write(bytes, 0, bytes.length); 
        outputStream.flush(); 
        outputStream.close(); 
    
    }
    catch(Exception e) 
    {e.printStackTrace();} 
    
    %>
    </body>
    

    【讨论】:

      猜你喜欢
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-28
      • 1970-01-01
      相关资源
      最近更新 更多