从输入字段值设置var值

时间:2010-01-18 16:12:07

标签: html jsp jstl

我很早以前就开始使用JSP,JSTL,HTML和JavaScript,所以这是我的问题:

我需要将var的值设置为隐藏的输入值。其他选项是可以使用

进行比较
<c:if test="....">

我使用隐藏输入值发送的变量值。

感谢。

更新

我一直在尝试,但无法使其发挥作用。

我有这个包含id和object的字段。我还有包含对象的列表,所以我要做的就是找到与该ID相关的对象。

<input type="text" name="id1" />

但如果我这样做:

<c:set var="dd" value="${param.id1}" />
<input type="text" value="${dd}" />

输入文字为空,但与id1相关的文字显示850(即值为dinamic)

任何建议为什么不起作用?

更新2

我需要“multipart / form-data”,因为我需要上传图片。我理解如何从Java获取参数,但由于我没有使用服务器而是JSP页面,有什么方法可以做到这一点?只需要读取该输入元素并将其保存在变量中。

1 个答案:

答案 0 :(得分:3)

您可以通过隐式${param}变量访问请求参数。

E.g。 http://example.com/context/page.jsp?foo=bar

结合使用
<c:if test="${param.foo == 'bar'}">
   The foo's param value is bar!
</c:if>
<c:if test="${param.foo != 'bar'}">
   The foo's param value is not bar, it is: ${param.foo}
</c:if>

会显示第一个条件。

如果你真的想在后续请求中保留一些隐藏的输入元素(在你的问题中没有明确说明),那么你基本上需要做的就是:

<input type="hidden" name="foo" value="${param.foo}">

更新:根据您的更新:您还需要为输入元素提供名称。因此,例如

<input type="text" name="id1" value="${param.id1}" />

这种方式可以request.getParameter("id1")使用,也可以${param.id1}使用。你现在看到了吗?

更新2 :根据您在此处的评论:当然这与enctype="multipart/form-data"有关。使用此编码,请求参数不再在参数映射中,而是在请求正文中,因为与二进制数据混合(文件上载)。解释这一切将是一个漫长的故事,但基本上你需要自己解析请求。如果你使用的是Servlet 2.5或更早版本,那么Apache Commons FileUpload在这里非常有帮助。特别阅读“用户指南”和“常见问题解答”以查看代码示例并了解如何以正确的方式使用它(也在MSIE中!)。您甚至可以决定将FileUpload抽象出来,以便您可以通过常规方式使用HttpServletRequest#getParameter()${param},也请参阅this article

如果您已经使用Servlet 3.0,那么您可以使用HttpServletRequest#getParts()。您甚至可以将其抽象出来,以便您可以通过常规方式使用HttpServletRequest#getParameter()${param},同时参见this article

更新3:哦,您确实不想使用JSP来执行所有处理。那里不是。现在是学习Servlet的时候了。此外,当使用Filter将请求体中的所有参数放回请求参数映射中时(如两篇文章中所述),毕竟您也不一定需要Servlet。 / p>