使用JSTL在JSP之间传递值

时间:2015-11-08 13:23:07

标签: jsp jstl el

所以我在一个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>

1 个答案:

答案 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?