JSP页面未读取提交的值

时间:2010-01-21 17:38:37

标签: java jsp jstl

我正在开发基于jsp的应用程序的前端。我们在weblogic上使用spring运行。

我有一个页面,其中包含一个提交给自己的表单,我正在尝试访问我使用javascript设置的隐藏字段的值。

 <form method="post">

  <input type="hidden" name="choosenDateFrom" value="test1" />
  <input type="hidden" name="choosenDateTo" value="test2"  />
.... more code

但是当我在同一页面上使用代码时:

 <c:choose>
  <c:when test="${param.choosenDateFrom!=null}">
   <c:out value="${param.choosenDateFrom}" />
 </c:when>
   </c:choose>

页面上没有显示参数。我错过了什么?我虽然这是做到这一点的标准方式。

可能是因为我们使用MVC框架我不能像这样传递params吗?

3 个答案:

答案 0 :(得分:2)

您是否在Web应用程序中安装了JSTL并在JSP中声明了?

检查生成的HTML输出(在浏览器中打开页面,选择查看源)。它应该包含任何JSTL代码的 no 跟踪。如果是,那么您可能只需要先安装JSTL。只需在webapp的/WEB-INF/lib中删除jstl-1.2.jar,然后根据JSTL core TLD将标记库声明在JSP顶部:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

如果仍然无法解决问题,那么显然有一种全新的请求(即发生了重定向),或者您使用了错误的参数名称。使用<c:out value="${pageContext.request.parameterMap}" />查看所有名称。

根据您的疑问:

  

可能是因为我们使用的是MVC框架,我不能像这样传递params吗?

这纯粹取决于您使用的是哪一个。没有提及它并没有帮助我们提供更好的答案。但总的来说,${param}应保持不变。

答案 1 :(得分:0)

你有没有在你的jsp中包含核心库?大多数情况发生了什么,jsp只会忽略你的语法。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

答案 2 :(得分:0)

您可能希望使用名为Tamper Data的Firefox插件来查看您的参数是否实际上正确发布。确认您在发布后没有进行重定向,因为它会丢失所有参数,因为它会要求浏览器执行新请求。