2014-04-08 70 views
1

对不起,我提前提出了这个愚蠢的问题,但这个镜头片段无法正常工作。该JSP打印出 “空” 找到下面的代码:getParameter返回null

<html> 
    <head> 
     <title></title> 
    </head> 
    <body> 
     <form action="ServletController" method="post"> 
      <input type="text" name="invoice"> 
      <input type="text" name="amount"> 
      <input type="text" name="date"> 
      <input type="submit"> 
     </form> 
    </body> 
</html> 
public class ServletController extends HttpServlet { 

    @Override 
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
     resp.setContentType("text/html"); 
     String invoice = req.getParameter("invoice"); 
     String amount = req.getParameter("amount"); 
     String date = req.getParameter("date"); 
     //connection = new DBConn(); 
     //connection.createConnection(invoice, amount, date); 
     req.setAttribute("attr", invoice); 
     RequestDispatcher requestDispatcher = req.getRequestDispatcher("index.jsp"); 
     requestDispatcher.forward(req, resp); 
    } 
} 
<html> 
    <head> 
    <title></title> 
    </head> 
    <body> 
    <%-- String str = (String) request.getParameter("invoice"); 
    PrintWriter writer = response.getWriter(); 
    writer.print(str); 
    --%> 
    ${param.invoice} 
    </body> 
</html> 
<servlet> 
     <servlet-name>ServContr</servlet-name> 
     <servlet-class>classes.ServletController</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>ServContr</servlet-name> 
     <url-pattern>/ServletController</url-pattern> 
    </servlet-mapping> 
</servlet> 

如果我把scriplet JSP代码返回 “空”,在EL的情况下JSP什么。我试图用HTML表单进行实验,因为我认为浏览器没有正确提出请求的问题,但没有任何结果。请告诉我错误在哪里,为什么$ {}不起作用。谢谢!

+0

小小,感谢您的edditing – aime

回答

1

我的浏览器隐含地这样做,也许你的没有。

添加enctypeform

<form action="ServletController" method="post" enctype="application/x-www-form-urlencoded"> 

使浏览器将表单序列元素融入application/x-www-form-urlencoded内容,您可以用HttpServletRequest#getParameter(String)检索。

+0

Sotirios,非常感谢!有用!以前的Chrome版本没有使用enctype-attribute。 – aime