2014-02-27 60 views
0

我在将数据从servlet发送到JSP时遇到问题。将数据从servlet发送到JSP

我的数据来自用户表单,我修改并尝试将其发送到输出页面,但发送的值与输入页面上获得的值相同。

当调试时,我看到地图中的变量和更新的变量(在服务方法的引擎下创建的),所以我确信问题在于我试图将数据发送到输出页面的方式。

我的servlet:

public class OpportunityCost extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    if (request.getParameter("purchasePrice") == null) { 
     getServletContext().getRequestDispatcher("/index.jsp").forward(request, response); 
     return; 
    } 

    String iPurchasePrice = request.getParameter("purchasePrice"); 
    double purchasePrice = Double.parseDouble(iPurchasePrice); 
    purchasePrice = purchasePrice * 100; 

    request.setAttribute("purchasePrice", purchasePrice); 

    getServletContext().getRequestDispatcher("/output.jsp").forward(request, response); 
} 
} 

输入代码:

<form action="OpportunityCost" method="get"> 
    <table border="0"> 
     <tr> 
      <td> Home Purchase Price*: <input type="text" value="1" name="purchasePrice" /></td> 
     </tr> 

     <tr> 
      <td colspan=2"> <input type="submit" value="submit" /> </td> 
     </tr> 
     </table> 

输出代码:

String finalPrice = request.getParameter("purchasePrice"); %> 
    <%= finalPrice %> 

任何想法,我做错了吗?

+0

您的设置request.setAttribute,但尝试显示request.getParameter –

+0

非常感谢! – Merch

回答

1

属性和参数是两个不同的概念。使用request.setAttribute request.getAttribute,您可以在内部传递值在servlets之间。 request.getParameter()来自客户端。因此,将您的输出代码更改为reqeust.getAttribute(“purchasePrice”)。