Jsp JSTL choose标记不能正确地用于

Jsp JSTL choose标记不能正确地用于,jsp,servlets,jstl,Jsp,Servlets,Jstl,我有一个servlet S,它从JSP a捕获select字段选项值的请求参数,并将其存储在请求范围中 String test = request.getParameter("option"); request.setAttribute("select",test); 现在这个servlet在处理后将我再次重定向到同一个JSP A,现在在JSP A中,我有相同的选项字段,还有类似的代码 <select name="option"> <c:choose>

我有一个servlet S,它从JSP a捕获select字段选项值的请求参数,并将其存储在请求范围中

String test = request.getParameter("option");
    request.setAttribute("select",test);
现在这个servlet在处理后将我再次重定向到同一个JSP A,现在在JSP A中,我有相同的选项字段,还有类似的代码

 <select name="option">
     <c:choose>
      <c:when test="${select} == All">
      <option id="id" class="cl" value="All" selected>Items</option>                        
    </c:when>
    <c:otherwise>
     <option id="id" class="cl" value="All">All  Items</option>                        
    </c:otherwise>
     </c:choose>
   </select>

项目
所有项目
但由于某些原因,代码从不进入c:when,而是直接进入其他部分

虽然我已经广泛使用了JSTL,但由于某些原因,我无法做到这一点。我知道值存在于请求范围中,并且可以通过c:out标记看到它。我们是否可能在同一个会话中使用新值一次又一次地回发到同一页面?在这个问题上已经花了一天的时间,所以需要第三只眼睛来看看我是否遗漏了一些愚蠢的东西?如果有人能看一看,我将不胜感激。

这是错误的

<c:when test="${select} == All">
另见:

与具体问题无关您的具体功能需求可以用更简单的方式解决,而无需servlet复制参数:

<select name="option">
    <option id="id" class="cl" value="All" ${param.option == 'All' ? 'selected : ''}>All Items</option>                        
</select>


哈,巴卢斯,你的话里有魔力。刚才我又试了一次,现在它起作用了。我想知道为什么我之前不起作用。不客气。请注意更新后的答案,以更简单的方式。至于为什么它不起作用,显然你没有运行/测试你认为正在运行/测试的代码:)也许你是对的,我一直在花几个小时做愚蠢的错误,也许我需要更加专注。这对我来说是一项至关重要的工作,因为我想减少我正在开发的jsp的数量。我将使用您对我的其他模块的解决方案。非常感谢。不客气。我建议点击链接。它们可能包含有价值和启发性的信息。我会做的,巴卢斯。谢谢。
<select name="option">
    <option id="id" class="cl" value="All" ${param.option == 'All' ? 'selected : ''}>All Items</option>                        
</select>