请原谅我提前提出的愚蠢问题,但这个镜头片段无效。 JSP打印出“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返回“null”,在EL情况下JSP没什么。我尝试用HTML表单进行实验,因为我认为浏览器没有正确提出请求的问题,但没有。 PLease让我知道错误在哪里以及为什么$ {}不起作用。谢谢!
答案 0 :(得分:1)
我的浏览器隐含地执行此操作,也许您的浏览器没有。
在enctype
form
<form action="ServletController" method="post" enctype="application/x-www-form-urlencoded">
以便浏览器将表单元素序列化为application/x-www-form-urlencoded
内容,您可以使用HttpServletRequest#getParameter(String)
检索这些内容。
答案 1 :(得分:0)
同意Sotirios Delimanolis,大多数案例都是他的解决方案,除此之外,请检查请求URL中形成的多个参数
<input type="hidden" name="regId" id="regId" />
并且提交功能类似于
function fnSubmit()
{
document.getElementById("btnSubmit").disabled=true;
document.forms[0].action="someURL®Id=2";
document.forms[0].submit();
}
这将创建regId的两个值,服务器将其视为一个数组,request.getParameter将返回null,而request.getParameterValues将返回一个String数组。