我尝试使用jsp自动从url获取输入并使用servlet将其保存到数据存储区, 这是我的代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<html>
<body>
<h1> Testing input from url</h1>
</br>
<ul>
<li><p><b>user:</b>
<%= request.getParameter("user")%>
</p></li>
<li><p><b>content:</b>
<%= request.getParameter("content")%>
</p></li>
<li><p><b>date:</b>
<%= request.getParameter("date")%>
</p></li>
</ul>
<form action="/add" method="get">
<input type="hidden" name="user" value="%= request.getParameter("user")%"/>
<input type="hidden" name="content" value="%= request.getParameter("content")%"/>
<input type="submit" value="Post value" />
<input type="hidden" name="date" value="${fn:escapeXml(date)}"/>
</form>
</body>
</html>
当我通过插入url中的值来测试代码时,例如www.myweb?user = me&amp; content = this,它显示了值但未提交给数据存储区。 我在这里犯了一些错误吗? 提前谢谢。
答案 0 :(得分:0)
这里的流程尚不清楚。
我假设您有/add
托管的Servlet,负责阅读user
,content
和date
等请求变量并将其添加到数据库中。
您在此处提供的JSP文件似乎有些不合适。
我建议你有一个像上面提到的那个没有隐藏变量的add.jsp
的JSP文件。在这种情况下,您可以通过浏览器填充表单。
如果您想自动提供值,例如add.jsp?user = me&amp; content = this,那也没关系,但请注意您需要将表单提交到映射到的Servlet /add
因此您应该检查Servlet的数据库功能以及它没有将其添加到数据存储区的原因。
答案 1 :(得分:0)
我在隐藏字段的值中看到了问题。缺少角括号<...>
。行动从/
开始。如果您在同一个应用程序中调用servlet,则无需使用action
/
值
<form action="add" method="get">
<input type="hidden" name="user" value="<%= request.getParameter("user")%>"/>
<input type="hidden" name="content" value="<%= request.getParameter("content")%>"/>
.....
</form>