【问题标题】:set var value from input field value从输入字段值设置 var 值
【发布时间】:2011-01-06 10:35:43
【问题描述】:

我不久前开始使用 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 页面,有什么办法吗?只需读取该输入元素并将其保存在变量中即可。

【问题讨论】:

    标签: html jsp jstl


    【解决方案1】:

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

    例如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

    【讨论】:

    • 仍然无法正常工作,输入元素已经具有名称“id1”。我所有的输入都有一个名称,但无法通过 ${param.XXX} 获得任何一个名称是否与表单是“enctype =“multipart/form-data”有关?
    • 我没有完全理解 Update3,你的意思是如果表单是 enctype="multipart/form-data" ,就无法从同一个 .jsp 中知道输入元素的值?
    • 不要将 JSP 用于业务逻辑。这只是麻烦的收据。原始 Java 代码属于真正的 Java 类。
    猜你喜欢
    • 2011-11-28
    • 2013-08-25
    • 2019-05-07
    • 2013-04-12
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多