我需要从servlet中获取一个double值,以便在JSP中进行标记。我的doGet()正在发送带有ArrayList值的格式化HTML表格,所以在我开始工作后我决定解决这个问题。
Servlet:
//获取我需要的表的代码
//Send back the result, this all works good
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(returnAsHTML.toString());
我添加了尝试获取双倍值
//Send back the result
double test = 20;
request.setAttribute("Test",test);
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(returnAsHTML.toString());
getServletContext().getRequestDispatcher("index.jsp").forward(request,response);
在JSP中:
<!-- This variable is unresolved -->
<small>Test : ${Test}</small>
转发似乎使整个聚会崩溃。我是JSP新手,我确信我错过了一些小事。我需要在那里保留response.getWriter()的东西,它获取了我需要的大量信息。现在我只是不知道如何获得我需要的双重值,因为它们将显示在页面的整个不同部分。
答案 0 :(得分:5)
您不能同时将输出写入servletOutputStream 和 重定向。
您对浏览器的期望是:显示内容还是导航到其他页面?如果是第一个,请不要重定向。如果是第二个,则不显示HTML内容。
答案 1 :(得分:0)
尝试使用httpsession。使用session.setAttribiute()封装您拥有的任何对象。 然后使用sendRedirect()方法转发它。
可能属于这种
HttpSession session=request.getSession();
double test = 20;
session.setAttribute("Test",test);
response.sendRedirect("Index.jsp");
在JSP页面上
String s=(String)session.getAttribite("Test");
double d=Double.parseDouble(s);