2015-11-08 112 views
-1

因此,我在一个JSP中创建一个表单,并将数据传递给另一个JSP以检查它是否为空。我可以这样做吗?使用JSTL在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> 

回答

2

你正在检查放错了地方的请求参数。您应该在与目标资源关联的请求中检查它。 onclick内部的<c:set>没有任何意义。 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?

+0

谢谢,感谢您的帮助。我将回顾我在HTTP,HTML和JSP方面的知识。 – user3676506

+0

我还有一个问题。在First.jsp中,如果我只有一个,有没有办法获得与上面相同的结果? – user3676506

+0

这部分是为了评论,而不是新问题。在右上方有一个“Ask Question”按钮。无论如何,只要先学习一些基本的HTML。 – BalusC