所以我在一个JSP中有一个表单,一个用于将数据传递给另一个JSP以检查它是否为空。我可以这样做吗?
First.jsp
<form id="search-form" name="search">
<input type="text" name="txtSearch" id="search-field">
<button type="submit" onclick="<c:set var="search" value="${param.txtSearch}" scope="request"/>"><a href="Second.jsp">SEARCH</a></button>
</form>
Second.Jsp
<c:set var="search" value="${requestScope['search']}"/>
<c:choose>
<c:when test="${empty search}">
<h1>Empty</h1>
</c:when>
<c:otherwise>
<h1>${search}</h1>
</c:otherwise>
</c:choose>
答案 0 :(得分:2)
您正在检查错误位置的请求参数。您应该在与目标资源关联的请求中进行检查。 <c:set>
内的onclick
没有任何意义。 JSP生成HTML代码。 onclick
仅执行JS代码。右键单击页面,执行查看源并查看onclick
属性的位置。你有看到?它是空的!此外,包含在HTML按钮中的HTML链接也是无稽之谈。你基本上是在制作invalid HTML。在表单中,您应该在<form action>
中指定目标资源。
这是一个基本的启动示例:
<form action="Second.jsp">
<input type="text" name="txtSearch" />
<input type="submit" value="Search" />
</form>
<c:choose>
<c:when test="${empty param.txtSearch}">
...
</c:when>
<c:otherwise>
...
</c:otherwise>
</c:choose>
无论如何,我强烈建议您退后一步,检查您是否真的使用正确的学习资源来学习HTTP,HTML和JSP。你的第一次尝试中存在相当严重的基本错误。从这里开始:Java EE web development, where do I start and what skills do I need?