如何从html输入广播获取值并将其放在jsp java的输入隐藏字段中

问题描述 投票:0回答:1

我有单选按钮的代码

<input type="radio" name="opt" id="1" value="1"/><label for="1">${dto.quesOpt1}</label>
<br/>
<input type="radio" name="opt" id="2" value="2"/><label for="2">${dto.quesOpt2}</label>
<br/>
<input type="radio" name="opt" id="3" value="3"/><label for="3">${dto.quesOpt3}</label>
<br/>
<input type="radio" name="opt" id="4" value="4"/><label for="4">${dto.quesOpt4}</label>

而且我想将值放在这里,以便可以将其传递给我的Servlet

<form action="MainController" method="POST">
       <input type="hidden" name="quesNum" value="${requestScope.QUESNUM}"/>
       <input type="hidden" name="quesId" value="${dto.quesId}"/>
       <input type="hidden" name="quesChoice" value="${param.opt}"/>               <--------- here
       <input type="hidden" name="amount" value="${requestScope.AMOUNT}"/>
       <input type="hidden" name="action" value="Previous Question"/>
       <input type="submit" value="Previous" <c:if test="${requestScope.QUESNUM == 0}">disabled</c:if>/>
</form>

我总是在Servlet中获得空值

request.getParameter("quesChoice")

我不知道如何传递值。请指导我。谢谢。

java html jsp servlets jstl
1个回答
0
投票

您想要做的是在浏览器中执行服务器端代码(例如${dto.quesId})。你不能那样做。

  1. 您想做的事太讨厌了,可能不是正确的选择。您可能不需要将单选框中的值复制到表单,因为您可以将单选直接放在表单内。
  2. [JSP是一种非常古老的技术,大多数公司在几年前就已经放弃了,仍然使用它的公司计划放弃它。
  3. 如果您真的必须使用JSP,那么使用JSTL库,MKYoung会提供一些很棒的教程,介绍如何处理许多旧的Java问题,包括您现在正在苦苦挣扎的Java: C0]
  4. 如果您说“ fuck it,我想按照我打算一直使用的方式对其进行编码”,您仍然需要JavaScript复制您的值,因为这是处理浏览器端操作的JavaScript。

说了这么多,这就是使用纯JS的方法:

https://mkyong.com/spring-mvc/spring-mvc-radiobutton-and-radiobuttons-example/

请注意我必须先添加<html> <script> function copyValue() { let allOptions = Array.prototype.slice.call(document.getElementsByName('opt')); let selectedOption = allOptions.filter(opt => opt.checked)[0]; let selectedOptionValue = selectedOption ? selectedOption.value : undefined; document.getElementById('quesNum').value = selectedOptionValue; } </script> <body> <input type="radio" name="opt" id="1" value="1"/><label for="1">${dto.quesOpt1}</label> <br/> <input type="radio" name="opt" id="2" value="2"/><label for="2">${dto.quesOpt2}</label> <br/> <input type="radio" name="opt" id="3" value="3"/><label for="3">${dto.quesOpt3}</label> <br/> <input type="radio" name="opt" id="4" value="4"/><label for="4">${dto.quesOpt4}</label> <input type="hidden" name="quesNum" id="quesNum" value="${requestScope.QUESNUM}"/> <input type="button" value="Copy Value" onClick="copyValue()"/> </body> </html> ,然后再添加id="quesNum"才能触发动作。

如果您想使用它,请参见以下JSFiddle中的示例:onClick="copyValue()"

© www.soinside.com 2019 - 2024. All rights reserved.